Pagini recente » Cod sursa (job #3202285) | Cod sursa (job #2887039) | Cod sursa (job #1245593) | Cod sursa (job #1873653) | Cod sursa (job #1683596)
# include <bits/stdc++.h>
# define MOD 3210121
# define NN 22
# define KK 32
using namespace std;
ifstream f("cowfood.in");
ofstream g("cowfood.out");
int i,j,n,m,AUX,total,S,K,sol;
int current[KK], aux[NN][KK], v[NN][KK];
void BACK (int niv, int nr) {
if (niv==n+1) {
if (nr==0) return;
int P=1;
for (i=1; i<=K; ++i) {
P=1LL * P * (S - current[i] + 1) % MOD;
}
if (nr%2==1) AUX=(AUX + P + MOD) % MOD;
else AUX=(AUX - P + MOD) % MOD;
} else {
BACK (niv+1, nr); // nu mai adaug nimic
//il adaug pe niv
for (int i=1; i<=K; ++i) {
aux[niv][i]=current[i];
current[i]=max(current[i], v[niv][i]);
}
BACK (niv+1, nr+1);
for (int i=1; i<=K; ++i)
current[i]=aux[niv][i];
}
}
int main ()
{
f>>K>>S>>n;
for (int i=1; i<=n; ++i)
for (int j=1; j<=K; ++j)
f>>v[i][j];
BACK (1, 0);
total=1;
for (int i=1; i<=K; ++i)
total=1LL * total * S % MOD;
sol=(total - AUX + MOD) % MOD;
g<<sol<<"\n";
return 0;
}