Cod sursa(job #15158)

Utilizator ilarionilarion goe ilarion Data 10 februarie 2007 23:12:36
Problema 1-sir Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <iostream>
#include <fstream>
unsigned long  a[2][32640];
using namespace std;

int main(int argc, char* argv[]){
   int n;
   long S,L,lim;

   ifstream inf("1-sir.in");
   ofstream outf("1-sir.out");

   inf >> n;
   inf >> S;
   inf.close();

   L = n*(n-1)/2;
   if (S<-L || S>L){
     outf << 0;
     return 1;
   }
   int i,j;

   a[1][0] = 1;
   for(i=2;i<=n;i++){
     lim = i*(i-1)/2;                
     for(j=0;j<=lim;j++){
       a[i%2][j]=a[(i+1)%2][abs(j-(i-1))]+\
		 ((j+(i-1)>lim)?0:a[(i+1)%2][j+(i-1)]);
     }
   }
   outf << a[(i+1)%2][abs(S)];
   outf.close();
   return 0;
}