Cod sursa(job #17189)

Utilizator ilarionilarion goe ilarion Data 14 februarie 2007 23:00:57
Problema 1-sir Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <iostream>
#include <fstream>


unsigned long  a[2][32640];
using namespace std;

int main(int argc, char* argv[]){
   int n;
   long long S;
   long 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;
     outf.close();
     return 0;
   }
   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][(j-(i-1)>0)?(j-(i-1)):(i-1-j)]+\
		 ((j+(i-1)>lim)?0:a[(i+1)%2][j+(i-1)]);
     }
   }
   outf << a[(i+1)%2][(S>0)?S:(-S)];
   outf.close();
   return 0;
}