結果
問題 | No.2263 Perms |
ユーザー |
![]() |
提出日時 | 2023-04-10 15:45:47 |
言語 | cLay (20241019-1) |
結果 |
AC
|
実行時間 | 4 ms / 2,000 ms |
コード長 | 649 bytes |
コンパイル時間 | 3,630 ms |
コンパイル使用メモリ | 182,136 KB |
実行使用メモリ | 7,616 KB |
最終ジャッジ日時 | 2024-10-06 00:39:53 |
合計ジャッジ時間 | 5,371 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 39 |
ソースコード
int@n,@m,@a[n][n],b[n]; rep(y,n){ if(sum[x,0,n](a[y][x])!=m){ wt(-1); exit(0); } } rep(x,n){ if(sum[y,0,n](a[y][x])!=m){ wt(-1); exit(0); } } maxflow<int,int>f; f.malloc(2n+2,1); int st=2n; int ed=st+1; rep(y,n){ f.addEdge(st,y,1); } rep(x,n){ f.addEdge(n+x,ed,1); } rep(y,n){ rep(x,n){ if(a[y][x]){ f.addEdge(y,n+x,a[y][x]); } } } rep(m){ int dd=f.solve(st,ed); rep(y,n){ rep(i,1,f.es[y]){ int x=f.edge[y][i]; int r=f.rev[y][i]; if(f.flow[x][r]){ f.flow[x][r]=0; b[y]=x-n+1; } } } wt(b(n)); rep(y,n){ f.flow[st][y]=1; f.flow[y][0]=0; } rep(x,n){ f.flow[ed][x]=0; f.flow[n+x][0]=1; } }