Submission #72752106
Source Code Expand
Copy
#include <stdio.h>int R, C;int a[16][11234];int main(void) {int i, j, k;int ans = 0;if (scanf("%d%d", &R ,&C) != 2) return 1;for (i = 0; i < R; i++) {for (j = 0; j < C; j++) {if (scanf("%d", &a[i][j]) != 1) return 1;}}/* 縦の裏返しかたを全探索 */for (k = 0; k < (1 << R); k++) {int score = 0;for (j = 0; j < C; j++) {/* それぞれの列で、より有利なほうを選ぶ */int omote_cnt = 0;for (i = 0; i < R; i++) {
#include <stdio.h>
int R, C;
int a[16][11234];
int main(void) {
int i, j, k;
int ans = 0;
if (scanf("%d%d", &R ,&C) != 2) return 1;
for (i = 0; i < R; i++) {
for (j = 0; j < C; j++) {
if (scanf("%d", &a[i][j]) != 1) return 1;
}
}
/* 縦の裏返しかたを全探索 */
for (k = 0; k < (1 << R); k++) {
int score = 0;
for (j = 0; j < C; j++) {
/* それぞれの列で、より有利なほうを選ぶ */
int omote_cnt = 0;
for (i = 0; i < R; i++) {
omote_cnt += a[i][j] ^ ((k >> i) & 1);
}
score += omote_cnt >= R - omote_cnt ? omote_cnt : R - omote_cnt;
}
if (score > ans) ans = score;
}
printf("%d\n", ans);
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | E - おせんべい |
| User | mikecat |
| Language | C23 (GCC 14.2.0) |
| Score | 100 |
| Code Size | 699 Byte |
| Status | AC |
| Exec Time | 61 ms |
| Memory | 2116 KiB |
Judge Result
| Set Name | set01 | set02 | set03 | set04 | set05 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 20 / 20 | 20 / 20 | 20 / 20 | 20 / 20 | 20 / 20 | ||||||||||
| Status |
|
|
|
|
|
| Set Name | Test Cases |
|---|---|
| set01 | data1 |
| set02 | data2 |
| set03 | data3 |
| set04 | data4 |
| set05 | data5 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| data1 | AC | 1 ms | 1768 KiB |
| data2 | AC | 1 ms | 1684 KiB |
| data3 | AC | 1 ms | 1704 KiB |
| data4 | AC | 30 ms | 1972 KiB |
| data5 | AC | 61 ms | 2116 KiB |