Cod sursa(job #466805)

Utilizator cosmyoPaunel Cosmin cosmyo Data 27 iunie 2010 14:58:42
Problema Numarare Scor 40
Compilator cpp Status done
Runda Stelele Informaticii 2010, clasele X-XII, Ziua 1 Marime 0.75 kb
#include<fstream.h>
long s,n,x[100005],sol[100005];
int main()
{ifstream fin("numarare.in");
  fin>>n;
  long k,j,i,sw,nr=0;
   for(i=1;i<=n;++i)
	   fin>>x[i];
 fin.close();
 ofstream fout("numarare.out");
 if(n<=400)
  {for(i=1;i<=n;++i)
	 for(j=i+1;j<=n;j+=2)
	  {sw=1; 
	    for(k=1;k<=(j-i)/2;++k)
		  if(x[i+k]+x[j-k]!=x[j]+x[i])
		  {sw=0;
		   break;
		  }
		if(sw)
		 {//fout<<i<<" "<<j<<"\n";
			 ++nr;
		 }
	  }
  fout<<nr<<'\n';
  }
 else
 {for(i=2;i<=n;++i)
	 sol[i]=1;
   for(i=3;i<=n;++i)
   {sw=1;
    k=1;
	   while(sw)
	   {if(x[i-k-1]+x[i+k]==x[i]+x[i-1])
	     ++sol[i];
	    else
			sw=0;
		++k;
	   }
   }
   s=0;
  for(i=1;i<=n;++i) 
    s+=sol[i];
  fout<<s<<'\n';
 }
 fout.close();
 return 0;
}