Submission #2387394
Source Code Expand
#include <iostream> #include <vector> #include <algorithm> using namespace std; struct edge { int to, cap, rev; }; vector<edge>G[7777]; bool used[7777]; int H, W; void add_edge(int p1, int p2, int p3) { if (p1 < H*W && p2 < H*W) { if (((p1 / W) + (p1%W)) % 2 == 1) swap(p1, p2); } G[p1].push_back(edge{ p2,p3,(int)G[p2].size() }); G[p2].push_back(edge{ p1,0,(int)G[p1].size() - 1 }); } int dfs(int pos, int to, int cap) { if (pos == to) return cap; used[pos] = true; for (int i = 0; i < G[pos].size(); i++) { if (used[G[pos][i].to] == true || G[pos][i].cap == 0) continue; int V = dfs(G[pos][i].to, to, min(cap, G[pos][i].cap)); if (V == 0) continue; G[pos][i].cap -= V; G[G[pos][i].to][G[pos][i].rev].cap += V; return V; } return 0; } int max_flow(int u, int v) { int fl = 0; while (true) { for (int i = 0; i < 7777; i++) used[i] = false; int C = dfs(u, v, 1000000007); if (C == 0) break; fl += C; } return fl; } int a[77][77], b[77][77], l[77][77], cost; int main() { cin >> H >> W; for (int i = 1; i <= H; i++) { for (int j = 1; j <= W; j++) { cin >> a[i][j]; l[i][j] = (i - 1)*W + (j - 1); } } for (int i = 1; i <= H; i++) { for (int j = 1; j <= W; j++) { cin >> b[i][j]; if (a[i][j] != b[i][j]) cost++; } } for (int i = 1; i <= H; i++) { for (int j = 1; j <= W; j++) { if (i <= H - 1 && a[i][j] != b[i][j] && a[i + 1][j] != b[i + 1][j] && a[i][j] != a[i + 1][j]) add_edge(l[i][j], l[i + 1][j], 1); if (j <= W - 1 && a[i][j] != b[i][j] && a[i][j + 1] != b[i][j + 1] && a[i][j] != a[i][j + 1]) add_edge(l[i][j], l[i][j + 1], 1); if ((i + j) % 2 == 0) add_edge(H*W, l[i][j], 1); if ((i + j) % 2 == 1) add_edge(l[i][j], H*W + 1, 1); } } int GG = max_flow(H*W, H*W + 1); cout << cost - GG << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | C - 天下一美術館 |
User | E869120 |
Language | C++14 (GCC 5.4.1) |
Score | 90 |
Code Size | 1854 Byte |
Status | AC |
Exec Time | 150 ms |
Memory | 1408 KB |
Judge Result
Set Name | small | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 40 / 40 | 50 / 50 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
small | 00_manual03.txt, 00_manual04.txt, 00_manual05.txt, 00_manual06.txt, 00_manual07.txt, 00_sample00.txt, 00_sample01.txt, 00_sample02.txt, 00_small100.txt, 00_small101.txt, 00_small102.txt, 00_small103.txt, 00_small104.txt, 00_small105.txt, 00_small106.txt, 00_small107.txt, 00_small108.txt, 00_small109.txt, 00_small110.txt, 00_small111.txt, 00_small112.txt, 00_small113.txt, 00_small114.txt, 00_small115.txt, 00_small116.txt, 00_small117.txt, 00_small118.txt, 00_small119.txt, 00_small120.txt, 00_small121.txt, 00_small122.txt, 00_small123.txt, 00_small124.txt, 00_small125.txt, 00_small126.txt, 00_small127.txt, 00_small128.txt, 00_small129.txt, 00_small130.txt, 00_small131.txt, 00_small132.txt, 00_small133.txt, 00_small134.txt, 00_small135.txt, 00_small136.txt, 00_small137.txt, 00_small138.txt, 00_small139.txt, 00_small140.txt, 00_small141.txt, 00_small142.txt, 00_small143.txt, 00_small144.txt, 00_small145.txt, 00_small146.txt, 00_small147.txt, 00_small148.txt, 00_small149.txt, 00_small150.txt, 00_small151.txt, 00_small152.txt, 00_small153.txt, 00_small154.txt, 00_small155.txt, 00_small156.txt, 00_small157.txt, 00_small158.txt |
All | 00_manual03.txt, 00_manual04.txt, 00_manual05.txt, 00_manual06.txt, 00_manual07.txt, 00_sample00.txt, 00_sample01.txt, 00_sample02.txt, 00_small100.txt, 00_small101.txt, 00_small102.txt, 00_small103.txt, 00_small104.txt, 00_small105.txt, 00_small106.txt, 00_small107.txt, 00_small108.txt, 00_small109.txt, 00_small110.txt, 00_small111.txt, 00_small112.txt, 00_small113.txt, 00_small114.txt, 00_small115.txt, 00_small116.txt, 00_small117.txt, 00_small118.txt, 00_small119.txt, 00_small120.txt, 00_small121.txt, 00_small122.txt, 00_small123.txt, 00_small124.txt, 00_small125.txt, 00_small126.txt, 00_small127.txt, 00_small128.txt, 00_small129.txt, 00_small130.txt, 00_small131.txt, 00_small132.txt, 00_small133.txt, 00_small134.txt, 00_small135.txt, 00_small136.txt, 00_small137.txt, 00_small138.txt, 00_small139.txt, 00_small140.txt, 00_small141.txt, 00_small142.txt, 00_small143.txt, 00_small144.txt, 00_small145.txt, 00_small146.txt, 00_small147.txt, 00_small148.txt, 00_small149.txt, 00_small150.txt, 00_small151.txt, 00_small152.txt, 00_small153.txt, 00_small154.txt, 00_small155.txt, 00_small156.txt, 00_small157.txt, 00_small158.txt, 01_large100.txt, 01_large101.txt, 01_large102.txt, 01_large103.txt, 01_large104.txt, 01_large105.txt, 01_large106.txt, 01_large107.txt, 01_large108.txt, 01_large1325.txt, 01_large1327.txt, 01_large1330.txt, 01_large1339.txt, 01_large1343.txt, 01_large1355.txt, 01_large1366.txt, 01_large1367.txt, 01_large1374.txt, 01_large1380.txt, 01_large1388.txt, 01_large1395.txt, 01_large1396.txt, 01_large1400.txt, 01_large1402.txt, 01_large1405.txt, 01_large1409.txt, 01_large1413.txt, 01_large1417.txt, 01_large1423.txt, 01_large1430.txt, 01_large1437.txt, 01_large1438.txt, 01_large1442.txt, 01_large1450.txt, 01_large1459.txt, 01_large1464.txt, 01_large1472.txt, 01_large1478.txt, 01_large1480.txt, 01_large1486.txt, 01_large1492.txt, 01_large1500.txt, 01_large1501.txt, 01_large1502.txt, 01_large1506.txt, 01_large157.txt, 01_large207.txt, 01_large507.txt, 01_large577.txt, 01_large591.txt, 01_large893.txt, 01_manual_L00.txt, 01_manual_L01.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00_manual03.txt | AC | 1 ms | 512 KB |
00_manual04.txt | AC | 1 ms | 512 KB |
00_manual05.txt | AC | 1 ms | 512 KB |
00_manual06.txt | AC | 1 ms | 512 KB |
00_manual07.txt | AC | 1 ms | 512 KB |
00_sample00.txt | AC | 1 ms | 512 KB |
00_sample01.txt | AC | 1 ms | 512 KB |
00_sample02.txt | AC | 1 ms | 512 KB |
00_small100.txt | AC | 1 ms | 384 KB |
00_small101.txt | AC | 1 ms | 512 KB |
00_small102.txt | AC | 1 ms | 512 KB |
00_small103.txt | AC | 1 ms | 512 KB |
00_small104.txt | AC | 1 ms | 512 KB |
00_small105.txt | AC | 1 ms | 512 KB |
00_small106.txt | AC | 1 ms | 384 KB |
00_small107.txt | AC | 1 ms | 512 KB |
00_small108.txt | AC | 1 ms | 512 KB |
00_small109.txt | AC | 1 ms | 512 KB |
00_small110.txt | AC | 1 ms | 512 KB |
00_small111.txt | AC | 1 ms | 512 KB |
00_small112.txt | AC | 1 ms | 512 KB |
00_small113.txt | AC | 1 ms | 512 KB |
00_small114.txt | AC | 1 ms | 512 KB |
00_small115.txt | AC | 1 ms | 512 KB |
00_small116.txt | AC | 1 ms | 512 KB |
00_small117.txt | AC | 1 ms | 512 KB |
00_small118.txt | AC | 1 ms | 512 KB |
00_small119.txt | AC | 1 ms | 512 KB |
00_small120.txt | AC | 1 ms | 512 KB |
00_small121.txt | AC | 1 ms | 512 KB |
00_small122.txt | AC | 1 ms | 512 KB |
00_small123.txt | AC | 1 ms | 512 KB |
00_small124.txt | AC | 1 ms | 512 KB |
00_small125.txt | AC | 1 ms | 512 KB |
00_small126.txt | AC | 1 ms | 512 KB |
00_small127.txt | AC | 1 ms | 512 KB |
00_small128.txt | AC | 1 ms | 512 KB |
00_small129.txt | AC | 1 ms | 512 KB |
00_small130.txt | AC | 1 ms | 512 KB |
00_small131.txt | AC | 1 ms | 512 KB |
00_small132.txt | AC | 1 ms | 512 KB |
00_small133.txt | AC | 1 ms | 512 KB |
00_small134.txt | AC | 1 ms | 512 KB |
00_small135.txt | AC | 1 ms | 512 KB |
00_small136.txt | AC | 1 ms | 512 KB |
00_small137.txt | AC | 1 ms | 512 KB |
00_small138.txt | AC | 1 ms | 512 KB |
00_small139.txt | AC | 1 ms | 512 KB |
00_small140.txt | AC | 1 ms | 512 KB |
00_small141.txt | AC | 1 ms | 512 KB |
00_small142.txt | AC | 1 ms | 512 KB |
00_small143.txt | AC | 1 ms | 512 KB |
00_small144.txt | AC | 1 ms | 512 KB |
00_small145.txt | AC | 1 ms | 512 KB |
00_small146.txt | AC | 1 ms | 512 KB |
00_small147.txt | AC | 1 ms | 512 KB |
00_small148.txt | AC | 1 ms | 512 KB |
00_small149.txt | AC | 1 ms | 512 KB |
00_small150.txt | AC | 1 ms | 512 KB |
00_small151.txt | AC | 1 ms | 512 KB |
00_small152.txt | AC | 1 ms | 512 KB |
00_small153.txt | AC | 1 ms | 512 KB |
00_small154.txt | AC | 1 ms | 512 KB |
00_small155.txt | AC | 1 ms | 512 KB |
00_small156.txt | AC | 1 ms | 512 KB |
00_small157.txt | AC | 1 ms | 512 KB |
00_small158.txt | AC | 1 ms | 512 KB |
01_large100.txt | AC | 1 ms | 512 KB |
01_large101.txt | AC | 2 ms | 512 KB |
01_large102.txt | AC | 1 ms | 512 KB |
01_large103.txt | AC | 2 ms | 512 KB |
01_large104.txt | AC | 2 ms | 512 KB |
01_large105.txt | AC | 4 ms | 512 KB |
01_large106.txt | AC | 1 ms | 512 KB |
01_large107.txt | AC | 1 ms | 512 KB |
01_large108.txt | AC | 39 ms | 1408 KB |
01_large1325.txt | AC | 50 ms | 896 KB |
01_large1327.txt | AC | 45 ms | 1152 KB |
01_large1330.txt | AC | 41 ms | 1280 KB |
01_large1339.txt | AC | 44 ms | 896 KB |
01_large1343.txt | AC | 49 ms | 1152 KB |
01_large1355.txt | AC | 43 ms | 1152 KB |
01_large1366.txt | AC | 46 ms | 896 KB |
01_large1367.txt | AC | 49 ms | 896 KB |
01_large1374.txt | AC | 50 ms | 896 KB |
01_large1380.txt | AC | 35 ms | 896 KB |
01_large1388.txt | AC | 80 ms | 896 KB |
01_large1395.txt | AC | 77 ms | 896 KB |
01_large1396.txt | AC | 41 ms | 1280 KB |
01_large1400.txt | AC | 39 ms | 1280 KB |
01_large1402.txt | AC | 69 ms | 896 KB |
01_large1405.txt | AC | 46 ms | 896 KB |
01_large1409.txt | AC | 49 ms | 896 KB |
01_large1413.txt | AC | 35 ms | 1152 KB |
01_large1417.txt | AC | 142 ms | 1024 KB |
01_large1423.txt | AC | 58 ms | 896 KB |
01_large1430.txt | AC | 84 ms | 896 KB |
01_large1437.txt | AC | 64 ms | 896 KB |
01_large1438.txt | AC | 55 ms | 1152 KB |
01_large1442.txt | AC | 41 ms | 1280 KB |
01_large1450.txt | AC | 58 ms | 896 KB |
01_large1459.txt | AC | 125 ms | 1024 KB |
01_large1464.txt | AC | 75 ms | 896 KB |
01_large1472.txt | AC | 88 ms | 896 KB |
01_large1478.txt | AC | 71 ms | 896 KB |
01_large1480.txt | AC | 50 ms | 1280 KB |
01_large1486.txt | AC | 65 ms | 896 KB |
01_large1492.txt | AC | 65 ms | 896 KB |
01_large1500.txt | AC | 53 ms | 896 KB |
01_large1501.txt | AC | 58 ms | 1024 KB |
01_large1502.txt | AC | 39 ms | 896 KB |
01_large1506.txt | AC | 45 ms | 896 KB |
01_large157.txt | AC | 80 ms | 1024 KB |
01_large207.txt | AC | 35 ms | 1152 KB |
01_large507.txt | AC | 150 ms | 1024 KB |
01_large577.txt | AC | 133 ms | 1024 KB |
01_large591.txt | AC | 135 ms | 1024 KB |
01_large893.txt | AC | 49 ms | 1152 KB |
01_manual_L00.txt | AC | 3 ms | 768 KB |
01_manual_L01.txt | AC | 3 ms | 768 KB |