Mai intai trebuie sa te autentifici.
Cod sursa(job #289871)
Utilizator | Data | 27 martie 2009 09:09:53 | |
---|---|---|---|
Problema | Farfurii | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.76 kb |
#include <stdio.h>
#define ll long long
ll n,k;
int main ()
{
freopen ("farfurii.in","r",stdin);
freopen ("farfurii.out","w",stdout);
ll i,m,p;
scanf ("%lld%lld",&n,&k);
for (p=1; p<n; p*=2);
for (m=0; p; p/=2)
if (m+p<=n && (m+p)*(m+p-1)<=2*k)
m+=p;
k-=m*(m-1)/2;
if (!k)
{
for (i=1; i<=n-m; ++i)
printf ("%lld ",i);
for (i=n; i>n-m; --i)
printf ("%lld ",i);
}
else
{
k=m-k;
++m;
for (i=1; i<=n-m; ++i)
printf ("%lld ",i);
printf ("%lld ",n-k);
for (i=n; i>n-k; --i)
printf ("%lld ",i);
for (n-k-1; i>n-m; --i)
printf ("%lld ",i);
}
return 0;
}