Cod sursa(job #1989474)

Utilizator MihaelaCismaruMihaela Cismaru MihaelaCismaru Data 7 iunie 2017 16:35:28
Problema Diamant Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include<fstream>
using namespace std;
ifstream in("diamant.in");
ofstream out("diamant.out");
int sum,i,j,v[4001],d,n,m,k,sol,mat[2][44200],bonus;
int main(){
    in >> n >> m >> k;
    for( i = 1; i <= n; i ++ ){
        for( j = 1; j <= m; j ++ ){
            v[++d]=i*j;
            sum+=i*j;
        }
    }
    for( i = 1; i <= d; i ++ ){
        for( j = 1; j <= sum;j ++ ){
            bonus = 0;
            if(mat[(i-1)%2][j-v[i]] > 0 ){
                bonus+=mat[(i-1)%2][j-v[i]];
            }
            if( mat[(i-1)%2][j+v[i]] > 0 ){
                bonus+=mat[(i-1)%2][j+v[i]];
            }
            if( v[i] == j ){
                bonus+=mat[(i-1)%2][j];
            }
            if( bonus > 0 ){
                mat[i%2][j] = bonus;
            }
            else{
                mat[i%2][j] = 1;
            }
        }
    }
    out << mat[d%2][k];
    return 0;
}