Cod sursa(job #391708)

Utilizator vicenzo_cnuStan Alexandru Dan vicenzo_cnu Data 6 februarie 2010 08:11:49
Problema Farfurii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<stdio.h>
#define Nmax 100001
 long long k,m,comp;
long long n,c,p;
char v[Nmax];

int main()
{int i,j;
freopen("farfurii.in","r",stdin);
freopen("farfurii.out","w",stdout);
scanf("%lld %lld",&n,&k);
p=1,c=n;
  for(i=1;i<=n;i++)
    { if(k==(n+1-i)*(n-i)/2)
        {while(v[c]==1)
        c--;
        printf("%lld ",c);
        k-=n-i;
        
        v[c]=1;
        c--;}


	else if(k>(n-i)*(n-1-i)/2)
      {comp=n-((n-i)*(n-i+1)/2-k);
            printf("%lld ",comp);      
      k-=comp-i;v[comp]=1;
      }   
    
    else {while(v[p]==1)
          p++;
    printf("%lld ",p);
    v[p]=1;
          p++;}
  }
fclose(stdin);
fclose(stdout);
return 0;
}