Cod sursa(job #590592)
| Utilizator | Data | 18 mai 2011 18:05:36 | |
|---|---|---|---|
| Problema | Farfurii | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.51 kb |
#include <cstdio>
#include <fstream>
using namespace std;
int v[131072];
int main ()
{
ifstream in ("farfurii.in");
freopen ("farfurii.out","w",stdout);
int n,k;
in>>n>>k;
long long m=1,x,a;
for(bool g=1;g;){
g=0;
x=1LL*(n-m)*(n-m-1)>>1;
if(x>k){
v[m]=m;
g=1;
}
else{
v[m]=m+k-x;
x=v[m];
a=n;
for(int i=m+1;i<=n;++i)
if(x==a){
v[i]=--a;
--a;
}
else{
v[i]=a;
--a;
}
}
++m;
}
for(int i=1;i<=n;++i)
printf("%d ",v[i]);
return 0;}
