Submission #47343941
Source Code Expand
Copy
#include <stdio.h>int H, W;char c[2048][2048];int rowsum[2048][26], colsum[2048][26];char rowdeleted[2048], coldeleted[2048];int rowminus[26], colminus[26];int rowdelnum, coldelnum;int rowdellist[2048][2], coldellist[2048][2];int main(void) {int i, j;int ans;if (scanf("%d%d", &H, &W) != 2) return 1;for (i = 0; i < H; i++) {if (scanf("%2047s", c[i]) != 1) return 1;}for (i = 0; i < H; i++) {
#include <stdio.h> int H, W; char c[2048][2048]; int rowsum[2048][26], colsum[2048][26]; char rowdeleted[2048], coldeleted[2048]; int rowminus[26], colminus[26]; int rowdelnum, coldelnum; int rowdellist[2048][2], coldellist[2048][2]; int main(void) { int i, j; int ans; if (scanf("%d%d", &H, &W) != 2) return 1; for (i = 0; i < H; i++) { if (scanf("%2047s", c[i]) != 1) return 1; } for (i = 0; i < H; i++) { for (j = 0; j < W; j++) { int idx = c[i][j] - 'a'; if (0 <= idx && idx < 26) { rowsum[i][idx]++; colsum[j][idx]++; } } } for (;;) { rowdelnum = 0; coldelnum = 0; /* 各行および列について、印をつける条件を満たすかをチェックする */ for (i = 0; i < H; i++) { if (!rowdeleted[i]) { int idx = -1; for (j = 0; j < 26; j++) { int curnum = rowsum[i][j] - rowminus[j]; if (curnum > 0) { /* 1枚だけ or 他の色のクッキーがあった → 失格 */ if (curnum == 1 || idx >= 0) { idx = -999; break; } else { idx = j; } } } if (idx >= 0) { rowdellist[rowdelnum][0] = i; rowdellist[rowdelnum][1] = idx; rowdelnum++; } } } for (i = 0; i < W; i++) { if (!coldeleted[i]) { int idx = -1; for (j = 0; j < 26; j++) { int curnum = colsum[i][j] - colminus[j]; if (curnum > 0) { /* 1枚だけ or 他の色のクッキーがあった → 失格 */ if (curnum == 1 || idx >= 0) { idx = -999; break; } else { idx = j; } } } if (idx >= 0) { coldellist[rowdelnum][0] = i; coldellist[rowdelnum][1] = idx; coldelnum++; } } } /* 印をつけたクッキーが無ければ終了 */ if (rowdelnum == 0 && coldelnum == 0) break; /* 印をつけたクッキーを取り除く */ for (i = 0; i < rowdelnum; i++) { rowdeleted[rowdellist[i][0]] = 1; colminus[rowdellist[i][1]]++; } for (i = 0; i < coldelnum; i++) { coldeleted[coldellist[i][0]] = 1; rowminus[coldellist[i][1]]++; } } /* 残ったクッキーの枚数を数える */ ans = 0; for (i = 0; i < H; i++) { if (!rowdeleted[i]) { for (j = 0; j < 26; j++) { ans += rowsum[i][j] - rowminus[j]; } } } printf("%d\n", ans); return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - Magical Cookies |
User | mikecat |
Language | C (gcc 12.2.0) |
Score | 0 |
Code Size | 2399 Byte |
Status | WA |
Exec Time | 93 ms |
Memory | 6152 KB |
Judge Result
Set Name | Sample | All | ||||||
---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 400 | ||||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample00.txt, sample01.txt, sample02.txt |
All | sample00.txt, sample01.txt, sample02.txt, testcase00.txt, testcase01.txt, testcase02.txt, testcase03.txt, testcase04.txt, testcase05.txt, testcase06.txt, testcase07.txt, testcase08.txt, testcase09.txt, testcase10.txt, testcase11.txt, testcase12.txt, testcase13.txt, testcase14.txt, testcase15.txt, testcase16.txt, testcase17.txt, testcase18.txt, testcase19.txt, testcase20.txt, testcase21.txt, testcase22.txt, testcase23.txt, testcase24.txt, testcase25.txt, testcase26.txt, testcase27.txt, testcase28.txt, testcase29.txt, testcase30.txt, testcase31.txt, testcase32.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample00.txt | AC | 1 ms | 1748 KB |
sample01.txt | AC | 1 ms | 1712 KB |
sample02.txt | AC | 1 ms | 1748 KB |
testcase00.txt | AC | 14 ms | 5968 KB |
testcase01.txt | WA | 22 ms | 5976 KB |
testcase02.txt | WA | 33 ms | 6016 KB |
testcase03.txt | WA | 52 ms | 6092 KB |
testcase04.txt | WA | 86 ms | 5960 KB |
testcase05.txt | AC | 15 ms | 6040 KB |
testcase06.txt | WA | 21 ms | 6088 KB |
testcase07.txt | WA | 17 ms | 6108 KB |
testcase08.txt | WA | 17 ms | 6060 KB |
testcase09.txt | WA | 19 ms | 6040 KB |
testcase10.txt | AC | 15 ms | 5820 KB |
testcase11.txt | WA | 21 ms | 6020 KB |
testcase12.txt | WA | 19 ms | 6052 KB |
testcase13.txt | WA | 19 ms | 5672 KB |
testcase14.txt | WA | 20 ms | 6008 KB |
testcase15.txt | AC | 17 ms | 6112 KB |
testcase16.txt | WA | 19 ms | 5828 KB |
testcase17.txt | WA | 20 ms | 6012 KB |
testcase18.txt | WA | 20 ms | 6072 KB |
testcase19.txt | WA | 16 ms | 6036 KB |
testcase20.txt | AC | 17 ms | 6148 KB |
testcase21.txt | WA | 16 ms | 5720 KB |
testcase22.txt | WA | 19 ms | 6092 KB |
testcase23.txt | WA | 17 ms | 5548 KB |
testcase24.txt | WA | 21 ms | 6132 KB |
testcase25.txt | AC | 43 ms | 6092 KB |
testcase26.txt | AC | 43 ms | 6088 KB |
testcase27.txt | AC | 48 ms | 6124 KB |
testcase28.txt | AC | 47 ms | 5984 KB |
testcase29.txt | AC | 18 ms | 6056 KB |
testcase30.txt | WA | 93 ms | 6152 KB |
testcase31.txt | AC | 17 ms | 6128 KB |
testcase32.txt | WA | 89 ms | 6148 KB |