Cod sursa(job #95705)

Utilizator bacerandreiBacer Andrei bacerandrei Data 29 octombrie 2007 20:44:04
Problema Farfurii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include<fstream.h>
long n,k;
int main()
{
  ifstream f("farfurii.in");
  ofstream g("farfurii.out");
   long i,m,p;
  f>>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++)
	 g<<i<<" ";
	for(i=n;i>n-m;i--)
	 g<<i<<" ";
       }
     else
      {
       k=m-k;m++;
	for(i=1;i<=n-m;i++)
	 g<<i<<" ";
	for(i=n;i>n-k;i--)
	 g<<i<<" ";
	for(i=n-k-1;i>n-m;i--)
	 g<<i<<" ";
      }
     g.close();
   return 0;
}