Cod sursa(job #96201)

Utilizator edu2004euLuca Eduard edu2004eu Data 31 octombrie 2007 16:34:24
Problema Farfurii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.47 kb
#include<stdio.h>
long long n,k;
int main(void){
long i,m,p;
freopen("farfurii.in","r",stdin);
freopen("farfurii.out","w",stdout);
scanf("%lld %lld",&n,&k);
for(p=1;p<n;p*=2);
for(m=0;p>0;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("%ld",i);
for(i=n;i>n-m;i--) printf("%ld",i);
putchar('\n');}
else {
k=m-k; m++;
for(i=1;i<=n-m;i++) printf("%ld",i);
for(i=n-k-1;i>n-m;i--) printf("%ld",i);
putchar('\n');}
}