Cod sursa(job #14720)

Utilizator ilarionilarion goe ilarion Data 9 februarie 2007 16:04:50
Problema 1-sir Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <iostream>
#include <fstream>

int a[255][32385];
using namespace std;

int main(int argc, char* argv[]){
   ifstream inf("1-sir.in");
   ofstream outf("1-sir.out");
   int n;
   long S;
   inf >> n;
   inf >> S;
   inf.close();
   S = n*(n-1)/2-S;
   if ((S%2) != 0){
        outf << 0;
        return 0;
   }
   if (S < 0) {
     outf << 0;
     return 0;
   }
   if (S==0) {
     outf << 1;
     return 0;
   }
   S /= 2;

   int i,j,k,jj;
   for (i=1;i<n;i++){
     a[i][i] = 1;
     
     for (j=i+1;j<=i*(i+1)/2;j++){ // se poate pune j<=S
        jj = j-i;
        for(k=1;k<i;k++){
          if (k>jj) break;
          a[i][j]+=a[k][jj];
        }
     }
   }
  unsigned long  rezultat = 0;
  for (i=1;i<n;rezultat+=a[i][S],i++);
  outf <<rezultat<<endl;
  outf.close();
}