Cod sursa(job #2580386)

Utilizator valentinchipuc123Valentin Chipuc valentinchipuc123 Data 13 martie 2020 16:00:12
Problema Cowfood Scor 14
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("cowfood.in");
ofstream g("cowfood.out");

const int MOD=3210121;
int comb[35][10005],princ[10005],k,s,n,acces[25][35],suma,v[35],rasp=0;

int combinare()
{
 for(int i=1;i<=s;i++)
   comb[1][i]=1;

 for(int i=2;i<=k;i++)
  for(int j=1;j<=s;j++)
   comb[i][j]=(comb[i-1][j-1]+comb[i][j-1])%MOD;

 for(int i=1;i<=s;i++)
  {
   princ[i]=(princ[i-1]+comb[k][i])%MOD;
  }

 rasp=princ[s];
}

int bks(int v[],int ind,int nr)
{

 suma=0;
 for(int j=1;j<=k;j++)
   {
  v[j]=max(acces[ind][j],v[j]);
  suma+=v[j];
   }
if(s>suma)
 {
 if(nr%2==1)
  rasp-=princ[s+k-suma];
 else
  rasp+=princ[s+k-suma];
 }
 for(int j=ind+1;j<=n;j++)
  bks(v,j,nr+1);
}
int main()
{
f>>k>>s>>n;

combinare();

for(int i=1;i<=n;i++)
 for(int j=1;j<=k;j++)
  f>>acces[i][j];

for(int i=1;i<=n;i++)
 {
  for(int j=1;j<=k;j++)
   v[j]=0;
  bks(v,i,1);
 }

while(rasp<0)
 rasp+=MOD;

g<<rasp;
}