結果
| 問題 | No.3676 Cuboid Alignment |
| コンテスト | |
| ユーザー |
👑 |
| 提出日時 | 2026-08-10 17:36:36 |
| 言語 | C++23 (gcc 15.3.0 + boost 1.92.0) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 1,083 bytes |
| 記録 | |
| コンパイル時間 | 1,040 ms |
| コンパイル使用メモリ | 168,388 KB |
| 実行使用メモリ | 6,272 KB |
| 最終ジャッジ日時 | 2026-09-04 22:18:20 |
| 合計ジャッジ時間 | 6,628 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge1_1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 18 TLE * 1 -- * 23 |
ソースコード
#include <algorithm>
#include <iostream>
#include <string>
#include <vector>
int main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
int X, Y, Z;
std::cin >> X >> Y >> Z;
const int M = X * Y * Z;
auto id = [=](int x, int y, int z) { return x + X * (y + Y * z); };
std::vector<char> A(M), B(M);
std::string row;
for (auto* cuboid : {&A, &B})
for (int z = 0; z < Z; ++z) for (int y = 0; y < Y; ++y) {
std::cin >> row;
for (int x = 0; x < X; ++x) (*cuboid)[id(x, y, z)] = row[x];
}
int answer = M;
for (int sz = 0; sz < Z; ++sz) for (int sy = 0; sy < Y; ++sy) for (int sx = 0; sx < X; ++sx) {
int bad = 0;
for (int z = 0; z < Z; ++z) for (int y = 0; y < Y; ++y) for (int x = 0; x < X; ++x) {
char a = A[id(x, y, z)];
char b = B[id((x - sx + X) % X, (y - sy + Y) % Y, (z - sz + Z) % Z)];
bad += (a == 'B' && b == 'W') || (a == 'W' && b == 'B');
}
answer = std::min(answer, bad);
}
std::cout << answer << '\n';
}