結果
問題 | No.421 しろくろチョコレート |
ユーザー | gigime |
提出日時 | 2016-09-10 05:55:34 |
言語 | C++11 (gcc 11.4.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,815 bytes |
コンパイル時間 | 2,329 ms |
コンパイル使用メモリ | 176,128 KB |
実行使用メモリ | 13,952 KB |
最終ジャッジ日時 | 2024-11-16 19:42:33 |
合計ジャッジ時間 | 106,826 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 2 ms
10,496 KB |
testcase_01 | TLE | - |
testcase_02 | WA | - |
testcase_03 | WA | - |
testcase_04 | WA | - |
testcase_05 | TLE | - |
testcase_06 | TLE | - |
testcase_07 | TLE | - |
testcase_08 | WA | - |
testcase_09 | TLE | - |
testcase_10 | WA | - |
testcase_11 | TLE | - |
testcase_12 | AC | 2 ms
10,624 KB |
testcase_13 | AC | 2 ms
8,320 KB |
testcase_14 | AC | 2 ms
10,624 KB |
testcase_15 | AC | 2 ms
8,448 KB |
testcase_16 | TLE | - |
testcase_17 | TLE | - |
testcase_18 | TLE | - |
testcase_19 | AC | 1 ms
8,320 KB |
testcase_20 | TLE | - |
testcase_21 | TLE | - |
testcase_22 | TLE | - |
testcase_23 | AC | 2 ms
10,624 KB |
testcase_24 | AC | 1 ms
8,576 KB |
testcase_25 | AC | 2 ms
10,624 KB |
testcase_26 | AC | 1 ms
8,320 KB |
testcase_27 | AC | 2 ms
10,624 KB |
testcase_28 | TLE | - |
testcase_29 | TLE | - |
testcase_30 | TLE | - |
testcase_31 | TLE | - |
testcase_32 | TLE | - |
testcase_33 | TLE | - |
testcase_34 | AC | 2 ms
10,020 KB |
testcase_35 | AC | 3 ms
8,320 KB |
testcase_36 | TLE | - |
testcase_37 | TLE | - |
testcase_38 | TLE | - |
testcase_39 | WA | - |
testcase_40 | TLE | - |
testcase_41 | TLE | - |
testcase_42 | TLE | - |
testcase_43 | WA | - |
testcase_44 | TLE | - |
testcase_45 | WA | - |
testcase_46 | WA | - |
testcase_47 | TLE | - |
testcase_48 | TLE | - |
testcase_49 | WA | - |
testcase_50 | WA | - |
testcase_51 | TLE | - |
testcase_52 | TLE | - |
testcase_53 | WA | - |
testcase_54 | WA | - |
testcase_55 | TLE | - |
testcase_56 | WA | - |
testcase_57 | WA | - |
testcase_58 | TLE | - |
testcase_59 | TLE | - |
testcase_60 | TLE | - |
testcase_61 | TLE | - |
testcase_62 | AC | 2 ms
5,248 KB |
testcase_63 | AC | 2 ms
5,248 KB |
testcase_64 | AC | 1 ms
13,952 KB |
ソースコード
#include <bits/stdc++.h> using namespace std; #define FOR(i,l,r) for(int i = (l);i < (r);i++) #define PB push_back #define MP make_pair #define ALL(x) (x).begin(),(x).end() typedef long long ll; int N,M; vector<string> board; int max_cost [50] [50]; bool vis [50] [50]; const int dx [] = {0,1,0,-1}; const int dy [] = {-1,0,1,0}; bool in_range(int y,int x) { return y >= 0 && y < N && x >= 0 && x < M; } pair<int,int> bfs(int ny,int nx) { queue< pair<int,int> > q; deque< deque<bool> > seen(N,deque<bool>(M,false)); q.push(MP(ny,nx)); pair<int,int> res; while(q.empty() == false){ int y = q.front().first,x = q.front().second; q.pop(); if(seen [y] [x]) continue; seen [y] [x] = true; res = MP(y,x); FOR(i,0,4){ int yy = y + dy [i],xx = x + dx [i]; if(in_range(yy,xx) && board [yy] [xx] != '.'){ q.push(MP(yy,xx)); } } } return res; } int dfs(int y,int x,bool flag) { if(vis [y] [x] == true) return 0; if(board [y] [x] == '.') return 0; vis [y] [x] = true; int res = 0; FOR(i,0,4){ int yy = y + dy [i],xx = x + dx [i]; if(in_range(yy,xx)){ res = max(dfs(yy,xx,flag),res); } } vis [y] [x] = flag; return res + 1; } int main() { cin.tie(0); ios::sync_with_stdio(false); cin >> N >> M; board.resize(N); int black = 0,white = 0; FOR(i,0,N){ cin >> board [i]; black += count(ALL(board [i]),'b'); white += count(ALL(board [i]),'w'); } int ans = 0; FOR(i,0,N){ FOR(j,0,M){ if(board [i] [j] == '.' || vis [i] [j] == true) continue; pair<int,int> pos = bfs(i,j); int y = pos.first,x = pos.second; int res = dfs(y,x,false); ans += res / 2 * 100; black -= res / 2; white -= res / 2; dfs(y,x,true); } } ans += min(black,white) * 10; ans += max(black,white) - min(black,white); cout << ans << endl; return 0; }