Cod sursa(job #773069)

Utilizator ctlin04UAIC.VlasCatalin ctlin04 Data 31 iulie 2012 21:16:19
Problema Diamant Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<fstream>
#define zero 45000
using namespace std;
int l1[2*zero],l2[2*zero],v[401];

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