Cod sursa(job #304487)

Utilizator bugyBogdan Vlad bugy Data 13 aprilie 2009 12:08:32
Problema Multimi2 Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
#include<iostream>            
#include<stdio.h> 
short int a[50000],b[50000];
using namespace std;            
 int main()            
 {             
    FILE *f=fopen("multimi2.in","r"), *g=fopen("multimi2.out","w");            
   unsigned int i,n,d=0,s1=1,s2=1,ok=2,ss1=0,ss2=0;            
	fscanf(f,"%u",&n);
	if(n%2==0)
	{	a[1]=n; b[1]=1; s1=2;s2=2;
	for(i=n-1;i>1;i--) 
		if(ok==2) {b[s2]=i;b[s2+1]=i-1;s2=s2+2;i=i-1;ok=1;}
		else if(ok==1) {a[s1]=i;a[s1+1]=i-1;s1=s1+2;i=i-1;ok=2;}
	}
    else 
	{a[1]=n; s1=2;s2=1;
	for(i=n-1;i>=1;i--)
		if(ok==2)  {b[s2]=i;b[s2+1]=i-1;s2=s2+2;i=i-1;ok=1;}
		else if(ok==1) {a[s1]=i;a[s1+1]=i-1;s1=s1+2;i=i-1;ok=2;}
	}if(s1>2) s1--;if(s2>2)s2--;
	for(i=1;i<=s1;i++)
		ss1=ss1+a[i];
	for(i=1;i<=s2;i++)
		ss2=ss2+b[i];
	if(ss1>=ss2) d=ss1-ss2;
	if(ss2>ss1) d=ss2-ss1;
	fprintf(g,"%u\n",d); 
	fprintf (g,"%u\n",s1);
	for(i=1;i<=s1;i++)
		fprintf(g,"%hd ",a[i]);	
	fprintf(g,"\n");
	fprintf (g,"%u\n",s2);
	for(i=1;i<=s2;i++)
		fprintf(g,"%hd ",b[i]);	
		fprintf(g,"\n");   
 
fclose(f);            
fclose(g);            
 return 0;            
             
}