Cod sursa(job #1878332)

Utilizator pas.andreiPopovici Andrei-Sorin pas.andrei Data 14 februarie 2017 00:56:11
Problema Diamant Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <bits/stdc++.h>
#define pb push_back
#define MOD 10000
#define pb push_back
#define INF 0x3f3f3f3f
#define INFLL (1LL*INF*INF)
#define NMAX 44105
#define SHIFT 45000
#define ll long long

using namespace std;

typedef pair<int, int> pii;

ifstream fin("diamant.in");
ofstream fout("diamant.out");

int nr[3*NMAX],pre[3*NMAX];
vector<int> v;

int main() {
	int n,m,k,i,j;

	fin>>n>>m>>k;
	if(abs(k)>44100) {
		fout<<0;
		return 0;
	}
	for(i=1;i<=n;++i)
		for(j=1;j<=m;++j) v.pb(i*j);

	pre[SHIFT]=1;
	nr[SHIFT]=1;
	for(auto it:v) {
		for(j=0;j<NMAX+SHIFT;++j) nr[j]=(nr[j]+pre[j-it]+pre[j+it])%MOD;

		for(j=0;j<NMAX+SHIFT;++j) pre[j]=nr[j];
	}

	fout<<nr[SHIFT+k];

	return 0;
}