Pagini recente » Cod sursa (job #75962) | Borderou de evaluare (job #2560219) | Cod sursa (job #2131101) | Cod sursa (job #2503593) | Cod sursa (job #1800270)
//
// main.cpp
// Diamant
//
// Created by Nasca Sergiu Alin on 07/11/2016.
// Copyright © 2016 Nasca Sergiu Alin. All rights reserved.
//
#include <iostream>
#define D_MAX 20
#define ADD_MORE 10
using namespace std;
int a[D_MAX], b[D_MAX];
int main(int argc, const char * argv[])
{
freopen("diamant.in", "r", stdin);
freopen("diamant.out", "w", stdout);
int n, m, x, val = 0, min = 0, max = 0;
scanf("%d %d %d", &n, &m, &x);
a[ADD_MORE] = 1;
for(int i = 1; i <= n; ++i)
{
for(int j = 1; j <= m; ++j)
{
val = i*j;
for(int k = min; k <= max; ++k)
{
b[k + val + ADD_MORE] = b[k + val + ADD_MORE] + a[k +ADD_MORE];
b[k + ADD_MORE] = b[k + ADD_MORE] + a[k + ADD_MORE];
b[k - val + ADD_MORE] = b[k - val + ADD_MORE] + a[k + ADD_MORE];
}
min = min - val;
max = max + val;
for(int k = min; k <= max; ++k)
{
a[k + ADD_MORE] = b[k + ADD_MORE] % 1000;
b[k + ADD_MORE] = 0;
}
}
}
if(x < 0 || x > 200000)
{
printf("0\n");
return 0;
}
printf("%d\n", a[x + ADD_MORE]);
return 0;
}