Cod sursa(job #2439001)
| Utilizator | Data | 14 iulie 2019 15:44:56 | |
|---|---|---|---|
| Problema | Farfurii | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.67 kb |
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ifstream f("farfurii.in");
ofstream g("farfurii.out");
int main(){
int n;
ll k;
f>>n>>k;
vector <int> v(n);
for(int i=0;i<n;i++)
v[i]=i+1;
int x=1;
while(1LL*x*(x-1)/2<k)
++x;
if(1LL*x*(x-1)/2==k){
reverse(v.begin()+n-x,v.end());
}
else{
int y=n+k-1LL*x*(x-1)/2;
v[n-x]=y;
int cnt=n;
for(int i=n-x+1;i<n;i++){
if(cnt==y)
--cnt;
v[i]=cnt;
--cnt;
}
}
for(auto &it:v)
g<<it<<' ';
return 0;
}
