Cod sursa(job #2194685)

Utilizator _Victor_Victor Ciobanu _Victor_ Data 14 aprilie 2018 01:50:43
Problema Diamant Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
# include <bits/stdc++.h>

using namespace std;

int a[2][44100],v[400];//maxval=44100~45000

int main(){
	int x=0,s=0;
	int n=0,m=0;
	ifstream fin("diamant.in");
	ofstream fout("diamant.out");
	fin>>n>>m>>x;
	x=abs(x);
	if (x>44100) fout<<0;
	else{
		for (int i=1;i<=n;i++)
		 for (int j=1;j<=m;j++){
		 v[s++]=i*j;	
		 }
		for (int i=0;i<=x;i++)
		 a[0][i]=0;
		for (int i=0;i<=x;i++)
		 a[1][i]=0;
		a[0][0]=1;
		a[1][0]=1;
		for (int i=0;i<s;i++){
			for (int j=1;j<=x+v[s-1];j++){
			 a[i%2][j]= a[(i+1)%2][j]+a[(i+1)%2][abs(j-v[i])]+a[(i+1)%2][j+v[i]];
			}
		}  
	fout<<a[(s-1)%2][x]%10000;
	}
	return 0;
}