Cod sursa(job #2194703)

Utilizator _Victor_Victor Ciobanu _Victor_ Data 14 aprilie 2018 10:15:23
Problema Diamant Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
# include <bits/stdc++.h>

using namespace std;
const int MAX = 44100; 
int a[2][MAX+1],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>MAX) 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=0;j<=MAX;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]]) % 10000;				
			// cout<<a[i%2][j];
			}
			//cout<<endl;
		}  
	fout<<a[(s-1)%2][x];
	}
	return 0;
}