Cod sursa(job #110190)

Utilizator taigaalex cristian taiga Data 25 noiembrie 2007 20:12:23
Problema Multimi2 Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.03 kb
//multimi2

#include<fstream.h>
ifstream f("multimi2.in");
ofstream g("multimi2.out");
int main()
{long n1,n,i,dmin,x,y,s;
f>>n;
n1=n*(n+1)/2;dmin=n1%2;
g<<dmin<<"\n";
n1=n1/2;
if(n==2){
	g<<1<<"\n";
	g<<1<<"\n";
	g<<1<<"\n";
	g<<2;
	}
else 
 if(dmin==0)
            {
                   s=0;
                   x=0;y=0;
                   for(i=n;s<=n1;i--)
                   {
                        s=s+i;
                        x++;
		   }i++;
                   s=s-i;x--;
                   for(i=1;s<=n1;i++)
                   {
                        s=s+i;
                        y++;
                   }i--;
                   s=s-i;y--;
                   g<<n-x-y<<"\n";
                   for(i=y+1;i<=n-x;i++)
                                    g<<i<<" ";
                   g<<"\n"<<x+y<<"\n";
                   for(i=1;i<=y;i++)
                                    g<<i<<" ";
                   for(i=n-x+1;i<=n;i++)
                                    g<<i<<" ";
            }else
                 {
                           s=0;
                           x=0;y=0;
                           for(i=n;s<=n1;i--)
                           {
                                s=s+i;
                                x++;
                            }i++;
                            s=s-i;x--;
                            for(i=2;s<=n1;i++)
                            {
                                s=s+i;
                                y++;
                            }i--;
                            s=s-i;y--;
                            g<<n-x-y<<"\n";
                            g<<1<<" ";
                            for(i=y+2;i<=n-x;i++)
                                               g<<i<<" ";
                            g<<"\n"<<x+y<<"\n";
                            for(i=2;i<=y+1;i++)
                                               g<<i<<" ";
                            for(i=n-x+1;i<=n;i++)
					       g<<i<<" ";
		 }
	    f.close();
	    g.close();

return 0;
}