Cod sursa(job #591083)
| Utilizator | Data | 22 mai 2011 10:40:07 | |
|---|---|---|---|
| Problema | Farfurii | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.5 kb |
#include <cstdio>
#include <fstream>
using namespace std;
int v[131072];
int main ()
{
long long m=1,x,a,n,k;;
ifstream in ("farfurii.in");
freopen ("farfurii.out","w",stdout);
in>>n>>k;
for(bool g=0;!g&&m<=n;++m){
g=1;
x=(n-m)*(n-m-1)>>1;
if(x>k){
v[m]=m;
g=0;
}
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;
}
}
}
for(int i=1;i<=n;++i)
printf("%d ",v[i]);
return 0;}
