Cod sursa(job #96204)

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