Cod sursa(job #406689)

Utilizator vladiiIonescu Vlad vladii Data 1 martie 2010 18:59:42
Problema 1-sir Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <iostream>
#include <fstream>
using namespace std;
#define MOD 194767
#define pr 65280 //255*256

int N, S;
int Pos[2][pr+2];

int abs(int k) {
    if(k>=0) return k;
    else return -k;
}

int main() {
    FILE *f1=fopen("1-sir.in", "r"), *f2=fopen("1-sir.out", "w");
    int i, j, p, q;
    fscanf(f1, "%d%d", &N, &S);
    if(S>pr) { fprintf(f2, "0\n"); }
    else {
         Pos[0][0]=1;
         for(i=2; i<=N; i++) {
              for(j=0; j<=pr; j++) {
                   //cite siruri de lungime i cu suma j exista ?
                   Pos[1][j] = (Pos[0][abs(j-i+1)] + Pos[0][abs(j+i-1)]) % MOD;
              }
              for(j=0; j<=pr; j++) {
                   Pos[0][j]=Pos[1][j]; Pos[1][j]=0;
              }
         }
         fprintf(f2, "%d\n", Pos[0][abs(S)]);
    }
    fclose(f1); fclose(f2);
    return 0;
}