結果
問題 | No.421 しろくろチョコレート |
ユーザー |
![]() |
提出日時 | 2024-12-22 16:55:24 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
RE
|
実行時間 | - |
コード長 | 1,230 bytes |
コンパイル時間 | 3,283 ms |
コンパイル使用メモリ | 160,636 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-12-22 16:55:43 |
合計ジャッジ時間 | 8,476 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 26 WA * 1 RE * 38 |
ソースコード
#include <bits/stdc++.h>using namespace std;const int maxn = 1005;vector<int> z[maxn];int n1, n2, m, ans, N, M;void add_edge(int s,int e){z[s].push_back(e);}bool vis[maxn];char choco[105][105];int result[maxn];bool dfs(int i){for (int k=0;k<z[i].size();k++){int j = z[i][k];if (!vis[j]){vis[j] = true;if (!result[j] || dfs(result[j])){result[j] = i;return true;}}}return false;}int zb(int x, int y){return M*(x-1)+y;}int main(){cin >> N >> M;for (int i = 1;i <= N;i++){for (int j = 1;j <= M;j++){cin >> choco[i][j];}}for (int i = 1;i <= N;i++){for (int j = 1;j <= M;j++){if(choco[i][j] == 'b'){n1++;if(choco[i][j+1]=='w'){add_edge(n1, zb(i, j+1));}if(choco[i+1][j]=='w'){add_edge(n1, zb(i+1, j));}if(choco[i][j-1]=='w'){add_edge(n1, zb(i, j-1));}if(choco[i-1][j]=='w'){add_edge(n1, zb(i-1, j));}}if(choco[i][j] == 'w') n2++;}}for (int i=1;i<=n1;i++){memset(vis,false,sizeof(vis));if (dfs(i)) ans++;}if(n1 > n2) cout << ans*100 + (n2-ans)*10 + n1-n2;if(n1 <= n2) cout << ans*100 + (n1-ans)*10 + n2-n1;}