Cod sursa(job #1444123)
| Utilizator | Data | 29 mai 2015 10:57:20 | |
|---|---|---|---|
| Problema | Diamant | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.75 kb |
#include <iostream>
#include <fstream>
using namespace std;
const int diamant=45000;
int a[90100],b[90010],N,M,X;
int main()
{
ifstream g("diamant.in");
ofstream f("diamant.out");
g>>N>>M>>X;
a[diamant]=1;
b[diamant]=1;
if(X>44000 || X<-44000)
f<<"0";
else
for(int i=1;i<=N;i++)
{
for(int j=1;j<=M;j++)
{
int cost=i*j;
for(int k=1;k<=90000;k++)
{
if(a[k])
{
b[k+cost]=(b[k+cost]+a[k])%10000;
b[k-cost]=(b[k-cost]+a[k])%10000;
}
}
for(int k=1;k<=90000;k++)
a[k]=b[k];
}
}
f<<a[X+diamant];
}
