Cod sursa(job #96201)
Utilizator | Luca 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');}
}