Cod sursa(job #295039)

Utilizator iulia609fara nume iulia609 Data 2 aprilie 2009 22:18:18
Problema Multimi2 Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<stdio.h>
using namespace std;
char v[1000000];
int main()
{int nr,k,i;
 unsigned long s=0,s1,s2,a;
 
 FILE*f=fopen("multimi2.in","r");
 FILE*g=fopen("multimi2.out","w");
 
 fscanf(f,"%d",&nr);
 for(i=1;i<=nr;i++)
	 s+=i;
 if(s%2==0) s1=s2=s/2;
   else s1=s/2,s2=s1+1;
 
 a=nr;k=1;v[nr]=1;
 for(i=nr-1;i>=1;i--)
    {if(a==s1) break;
     else if((s1-a<nr)&&(v[s1-a]!=1)) v[s1-a]=1,k++,a=s1;
	     else if(a+i<s1) a+=i,k++,v[i]=1;
     }
fprintf(g,"%d\n%d\n",s%2,k);
for(i=1;i<=nr;i++)
	if(v[i]) fprintf(g,"%d ",i);
fprintf(g,"\n%d\n",nr-k);
for(i=1;i<=nr;i++)
    if(!v[i]) fprintf(g,"%d ",i);
fprintf(g,"\n");
fclose(f);
fclose(g);
return 0;
 }