Cod sursa(job #2063359)

Utilizator Ruxandra985Nanu Ruxandra Laura Ruxandra985 Data 11 noiembrie 2017 11:02:33
Problema Diamant Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <cstdio>
#define NR 50000
#define MOD 10000
using namespace std;
int a[2][100001],adn[100001],sc[100001];
int fmod (int x){
    if (x<MOD)
        return x;
    return x-MOD;
}
int main()
{
    FILE *fin=fopen ("diamant.in","r");
    FILE *fout=fopen ("diamant.out","w");
    int n,m,x,i,j,k,t;
    fscanf (fin,"%d%d%d",&n,&m,&x);
    a[0][NR]=1;
    t=1;
    for (i=1;i<=n;i++){
        for (j=1;j<=m;j++){
            for (k=0;k<=100000;k++){
                if (a[1-t][k]!=0){
                    a[t][k]=fmod(a[t][k]+a[1-t][k]);
                    if (k+i*j<=100000)
                        a[t][k+i*j]=fmod(a[t][k+i*j]+a[1-t][k]);
                    if (k-i*j>=0)
                        a[t][k-i*j]=fmod(a[t][k-i*j]+a[1-t][k]);
                    a[1-t][k]=0;
                }
            }
            t=1-t;
        }
    }
    x+=NR;
    if (0<=x && x<=100000)
        fprintf (fout,"%d",a[1-t][x]);
    else fprintf (fout,"0");
    return 0;
}