Cod sursa(job #1209708)

Utilizator ctlin04UAIC.VlasCatalin ctlin04 Data 18 iulie 2014 13:06:38
Problema Diamant Scor 90
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2013 Semestrul 2 Marime 1.01 kb
#include<fstream>
#define zero 50000
using namespace std;
int l1[2*zero],l2[2*zero],v[405];
 
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);
}