Cod sursa(job #8975)

Utilizator varuvasiTofan Vasile varuvasi Data 25 ianuarie 2007 23:52:38
Problema 1-sir Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb

//D[i][j] = D[i-1][j - (i - 1)] + D[i-1][j + (i - 1)] // nr de mod de a obtine suma j dintre i elem
#include <stdio.h>
#include <math.h>
#include <iostream.h>
#define Max 256
#define MaxS 33000

int N, S;
int a[2][MaxS];
int lc = 1, lp = 0;
int main()
{
    FILE *fin = fopen("1-sir.in", "rt"); 
    FILE *fout = fopen("1-sir.out", "wt");
    
    fscanf(fin, "%d %d", &N, &S);
    if (S < 0) S *= -1;
    
    fclose(fin);
    a[lp][0] = 1;
    for (int i = 2; i <= N; i++, lc = !lc, lp = !lp)
        for (int j = 0; j <= (i+1)*i/2; j++)
        {
            a[lc][j] = a[lp][abs(j - (i - 1))]+ a[lp][j + (i - 1)];
        }
   fprintf(fout, "%d", a[lp][S]);
   fclose(fout);
   return 0;
}