Cod sursa(job #1194257)

Utilizator Aleks10FMI - Petrache Alex Aleks10 Data 3 iunie 2014 11:48:39
Problema Diamant Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
//
//  main.cpp
//  diamant
//
//  Created by Alex Petrache on 03/06/14.
//  Copyright (c) 2014 Alex Petrache. All rights reserved.
//

#include <iostream>
#include <fstream>
#define N_MAX 100009
#define GO 100
using namespace std;
    int n,m,x,i,j,sum,a[N_MAX],b[N_MAX],val,k;
int main(int argc, const char * argv[])
{
  //  ifstream f("/Users/alexpetrache/Documents/Programare/Xcode/diamant/diamant.in");
//    ofstream g("/Users/alexpetrache/Documents/Programare/Xcode/diamant/diamant.out");
    ifstream f("diamant.in");
    ofstream g("diamant.out");
    f>>n>>m>>x;
    
    for (i=1;i<=n;++i)
        for(j=1;j<=m;++j)
            sum+=i*j;
    
    a[GO]=1;
    if (x>sum or x<sum-2*sum){
        g<<"0";
        return 0;
    }
    for(i=1;i<=n;++i)
        for(j=1;j<=m;++j)
        {
            val=i*j;
            for(k=-abs(sum);k<=abs(sum);++k){
                b[GO+k]=(a[GO+k]+a[GO+k-val]+a[GO+k+val])%10000;
            }
            for(k=-abs(sum);k<=abs(sum);++k)
                a[GO+k]=b[GO+k];
        }
    g<<a[GO+x];
    
    
    return 0;
}