Submission #25256379
Source Code Expand
#include<stdio.h>
const int maxn=25,maxm=10005,maxk=1<<20,maxa=2000005,mod=998244353;
int n,m,minn,ans;
int a[maxn],b[maxm],c[maxn][maxm],v[maxm],used[maxa],fac[maxa],nfac[maxa],inv[maxa],s[maxk],d[maxk];//supply & demand
inline int C(int n,int m){
return n<m? 0:1ll*fac[n]*nfac[m]%mod*nfac[n-m]%mod;
}
inline int min(int a,int b){
return a<b? a:b;
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]),s[1<<(i-1)]=a[i];
for(int i=1;i<=m;i++)
scanf("%d",&b[i]);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
scanf("%d",&c[i][j]),v[j]+=(c[i][j]<<(i-1));
for(int i=1;i<=m;i++)
d[v[i]]+=b[i];
for(int i=0;i<n;i++)
for(int j=0;j<(1<<n);j++)
if((j>>i)&1)
s[j]+=s[j^(1<<i)],d[j]+=d[j^(1<<i)];
fac[0]=fac[1]=nfac[0]=nfac[1]=inv[1]=1;
for(int i=2;i<=s[(1<<n)-1];i++){
fac[i]=1ll*fac[i-1]*i%mod;
inv[i]=mod-1ll*(mod/i)*inv[mod%i]%mod;
nfac[i]=1ll*nfac[i-1]*inv[i]%mod;
}
minn=1000000000;
for(int i=1;i<(1<<n);i++)
if(d[i])
minn=min(minn,s[i]-d[i]);
if(minn<0){
puts("0 1");
return 0;
}
printf("%d ",minn+1);
for(int i=1;i<(1<<n);i++)
if(s[i]-d[i]==minn)
used[i]=1;
for(int i=0;i<n;i++)
for(int j=0;j<(1<<n);j++)
if((j>>i)&1)
used[j^(1<<i)]+=used[j];
for(int i=1;i<(1<<n);i++)
if(s[i]-d[i]==minn&&used[i]==1)
ans=(ans+C(s[i],minn+1))%mod;
printf("%d\n",ans);
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | H - Cabbage Master |
| User | xiaoziyao |
| Language | C++ (Clang 10.0.0) |
| Score | 600 |
| Code Size | 1408 Byte |
| Status | AC |
| Exec Time | 100 ms |
| Memory | 39764 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 600 / 600 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | example0.txt, example1.txt, example2.txt |
| All | 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt, 021.txt, 022.txt, 023.txt, 024.txt, 025.txt, 026.txt, 027.txt, 028.txt, 029.txt, 030.txt, 031.txt, 032.txt, 033.txt, 034.txt, 035.txt, 036.txt, 037.txt, 038.txt, 039.txt, 040.txt, 041.txt, 042.txt, 043.txt, 044.txt, 045.txt, 046.txt, 047.txt, 048.txt, 049.txt, 050.txt, 051.txt, 052.txt, 053.txt, 054.txt, 055.txt, 056.txt, 057.txt, 058.txt, 059.txt, 060.txt, 061.txt, 062.txt, 063.txt, 064.txt, 065.txt, 066.txt, 067.txt, 068.txt, 069.txt, example0.txt, example1.txt, example2.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 000.txt | AC | 95 ms | 38980 KiB |
| 001.txt | AC | 86 ms | 39024 KiB |
| 002.txt | AC | 52 ms | 22496 KiB |
| 003.txt | AC | 69 ms | 28896 KiB |
| 004.txt | AC | 63 ms | 26580 KiB |
| 005.txt | AC | 52 ms | 22280 KiB |
| 006.txt | AC | 65 ms | 26396 KiB |
| 007.txt | AC | 89 ms | 38876 KiB |
| 008.txt | AC | 88 ms | 39044 KiB |
| 009.txt | AC | 55 ms | 24800 KiB |
| 010.txt | AC | 69 ms | 26604 KiB |
| 011.txt | AC | 65 ms | 25224 KiB |
| 012.txt | AC | 42 ms | 20944 KiB |
| 013.txt | AC | 65 ms | 25368 KiB |
| 014.txt | AC | 90 ms | 38832 KiB |
| 015.txt | AC | 88 ms | 38844 KiB |
| 016.txt | AC | 52 ms | 22660 KiB |
| 017.txt | AC | 70 ms | 28092 KiB |
| 018.txt | AC | 63 ms | 25912 KiB |
| 019.txt | AC | 53 ms | 21780 KiB |
| 020.txt | AC | 64 ms | 26104 KiB |
| 021.txt | AC | 86 ms | 38860 KiB |
| 022.txt | AC | 89 ms | 38832 KiB |
| 023.txt | AC | 69 ms | 28296 KiB |
| 024.txt | AC | 67 ms | 28064 KiB |
| 025.txt | AC | 71 ms | 29672 KiB |
| 026.txt | AC | 57 ms | 25388 KiB |
| 027.txt | AC | 73 ms | 29804 KiB |
| 028.txt | AC | 88 ms | 38888 KiB |
| 029.txt | AC | 87 ms | 38816 KiB |
| 030.txt | AC | 48 ms | 21664 KiB |
| 031.txt | AC | 72 ms | 29864 KiB |
| 032.txt | AC | 67 ms | 28296 KiB |
| 033.txt | AC | 52 ms | 24172 KiB |
| 034.txt | AC | 71 ms | 28460 KiB |
| 035.txt | AC | 50 ms | 22056 KiB |
| 036.txt | AC | 57 ms | 21572 KiB |
| 037.txt | AC | 39 ms | 17392 KiB |
| 038.txt | AC | 57 ms | 21368 KiB |
| 039.txt | AC | 55 ms | 24436 KiB |
| 040.txt | AC | 62 ms | 25184 KiB |
| 041.txt | AC | 46 ms | 21120 KiB |
| 042.txt | AC | 62 ms | 25128 KiB |
| 043.txt | AC | 26 ms | 8648 KiB |
| 044.txt | AC | 9 ms | 6680 KiB |
| 045.txt | AC | 14 ms | 7160 KiB |
| 046.txt | AC | 27 ms | 13384 KiB |
| 047.txt | AC | 11 ms | 4676 KiB |
| 048.txt | AC | 50 ms | 19048 KiB |
| 049.txt | AC | 76 ms | 25712 KiB |
| 050.txt | AC | 83 ms | 29476 KiB |
| 051.txt | AC | 85 ms | 31404 KiB |
| 052.txt | AC | 90 ms | 33772 KiB |
| 053.txt | AC | 83 ms | 30804 KiB |
| 054.txt | AC | 80 ms | 28908 KiB |
| 055.txt | AC | 84 ms | 35520 KiB |
| 056.txt | AC | 100 ms | 39764 KiB |
| 057.txt | AC | 2 ms | 3112 KiB |
| 058.txt | AC | 67 ms | 18576 KiB |
| 059.txt | AC | 65 ms | 18396 KiB |
| 060.txt | AC | 65 ms | 18328 KiB |
| 061.txt | AC | 66 ms | 18096 KiB |
| 062.txt | AC | 63 ms | 17992 KiB |
| 063.txt | AC | 65 ms | 17860 KiB |
| 064.txt | AC | 64 ms | 17712 KiB |
| 065.txt | AC | 63 ms | 17780 KiB |
| 066.txt | AC | 65 ms | 17496 KiB |
| 067.txt | AC | 64 ms | 17376 KiB |
| 068.txt | AC | 63 ms | 17288 KiB |
| 069.txt | AC | 65 ms | 17160 KiB |
| example0.txt | AC | 2 ms | 3096 KiB |
| example1.txt | AC | 2 ms | 3028 KiB |
| example2.txt | AC | 2 ms | 3100 KiB |