Cod sursa(job #2063322)

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