Cod sursa(job #328106)

Utilizator ZethpixZethpix Zethpix Data 1 iulie 2009 07:22:25
Problema Multimi2 Scor 100
Compilator cpp Status done
Runda w0 Marime 1.28 kb
#include <stdio.h>
FILE *f,*g;
long i,n;
int main(){
 f=fopen("multimi2.in","r");
 g=fopen("multimi2.out","w");
 fscanf(f,"%ld",&n);
 if (n%4==1){
  fprintf(g,"1\n");
  fprintf(g,"%ld\n",(n+1)/2);
  fprintf(g,"1 ");
  for (i=2;i<=n;i++)
   if (i%4==1||i%4==2) fprintf(g,"%ld ",i);
  fprintf(g,"\n%ld\n",n/2);
  for (i=2;i<=n;i++)
   if (i%4==3||i%4==0) fprintf(g,"%ld ",i);
  fprintf(g,"\n");
 }
  else
 if (n%4==2){
  fprintf(g,"1\n");
  fprintf(g,"%ld\n",n/2);
  fprintf(g,"1 ");
  for (i=3;i<=n;i++)
   if (i%4==1||i%4==0) fprintf(g,"%ld ",i);
  fprintf(g,"\n%ld\n",n/2);
  fprintf(g,"2 ");
  for (i=3;i<=n;i++)
   if (i%4==3||i%4==2) fprintf(g,"%ld ",i);
  fprintf(g,"\n");
 }
  else
 if (n%4==3){
  fprintf(g,"0\n");
  fprintf(g,"%ld\n",(n+1)/2);
  fprintf(g,"1 2 ");
  for (i=4;i<=n;i++)
   if (i%4==1||i%4==2) fprintf(g,"%ld ",i);
  fprintf(g,"\n%ld\n",n/2);
  fprintf(g,"3 ");
  for (i=4;i<=n;i++)
   if (i%4==3||i%4==0) fprintf(g,"%ld ",i);
  fprintf(g,"\n");
 }
  else
 if (n%4==0){
  fprintf(g,"0\n");
  fprintf(g,"%ld\n",n/2);
  for (i=1;i<=n;i++)
   if (i%4==3||i%4==2) fprintf(g,"%ld ",i);
  fprintf(g,"\n%ld\n",n/2);
  for (i=1;i<=n;i++)
   if (i%4==1||i%4==0) fprintf(g,"%ld ",i);
  fprintf(g,"\n");
 }
 fclose(f);
 fclose(g);
 return 0;
}