Pagini recente » Cod sursa (job #2638298) | Cod sursa (job #877899) | Cod sursa (job #523973) | Cod sursa (job #1641442) | Cod sursa (job #2580388)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("cowfood.in");
ofstream g("cowfood.out");
const int MOD=3210121;
long long 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;
rasp%=MOD;
g<<rasp;
}