Cod sursa(job #2516887)

Utilizator baltoi.teodorTeodor Baltoi baltoi.teodor Data 2 ianuarie 2020 16:02:13
Problema Diamant Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <bits/stdc++.h>

using namespace std;
const string file = "diamant";
ifstream fin(file +".in");
ofstream fout(file+".out");
int An[1<<16];
int Ap[1<<16];

int Bn[1<<16];
int Bp[1<<16];

int i,j,n,m,k;

#define A(i) (((i)<0)?(An[-(i)]):(Ap[(i)]))
#define B(i) (((i)<0)?(Bn[-(i)]):(Bp[(i)]))

#define li -50000
#define ls 50000

int main()
{

	fin>>n>>m>>k;
	if (k>ls){
		fout<<0<<"\n";
		return 0;
	}
	A(0)=1;

	for (i=1;i<=n;i++)
		for (j=1;j<=m;j++){
			memcpy(Bn,An,sizeof(An));
			memcpy(Bp,Ap,sizeof(Bp));
			for (int t=ls;t>=li;t--){
				A(t)=B(t-i*j)+B(t)+B(t+i*j);
				A(t)%=10000;
			}
		}

	fout<<A(k)<<"\n";
    return 0;

}