Cod sursa(job #19949)

Utilizator ilarionilarion goe ilarion Data 20 februarie 2007 13:16:56
Problema 1-sir Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <iostream>
#include <fstream>

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

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

   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,lc=1,la=0;
   
   a[1][0] = 1;
   for(i=2;i<=n;i++){
     limc = i*(i-1)/2;
     lima = limc - i + 1;
     lc = 1-lc; la = 1-la;               
     for(j=0;j<=limc;j++){
       a[lc][j] = a[la][abs(j-i+1)];
       if (j+i-1<=lima) a[lc][j]+=a[la][j+i-1];
       a[lc][j] %= 194767; 
     }
     
   }
   outf<<a[lc][abs(S)];
   outf.close();
   return 0;
}