結果
| 問題 |
No.2797 Square Tile
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2024-06-28 22:34:56 |
| 言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 1,101 bytes |
| コンパイル時間 | 3,329 ms |
| コンパイル使用メモリ | 251,944 KB |
| 実行使用メモリ | 6,948 KB |
| 最終ジャッジ日時 | 2024-06-28 22:35:04 |
| 合計ジャッジ時間 | 5,797 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 2 RE * 19 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
using LL = long long;
const int mxn = 105;
int a, b, L, vis[mxn][mxn];
vector<pair<int, int>> pa, pb;
vector<int> dax, day, dbx, dby;
bool ok (int x, int y) {
return x >= 0 && y >= 0 && x < L && y < L && !vis[x][y];
}
void bfsa(int x, int y);
void bfsb(int x, int y);
void bfsa(int x, int y) {
// printf("a: (%d, %d)\n", x, y);
vis[x][y] = 1;
pa.emplace_back(x, y);
for (int d = 0; d < 4; ++d) {
int nx = x + dax[d], ny = y + day[d];
if (ok(nx, ny)) bfsb(nx, ny);
}
}
void bfsb(int x, int y) {
// printf("b: (%d, %d)\n", x, y);
vis[x][y] = 2;
pb.emplace_back(x, y);
for (int d = 0; d < 4; ++d) {
int nx = x + dbx[d], ny = y + dby[d];
if (ok(nx, ny)) bfsa(nx, ny);
}
}
int main() {
cin >> a >> b;
L = a * a + b * b;
bool flag = false;
if (a < b) swap(a, b), flag = true;
dax = { a - b, a, 0, -b};
day = { a, 0, -b, a - b};
dbx = { 0, b, b - a, -a};
dby = { b, b - a, -a, 0};
bfsa(0, 0);
if (flag) swap(pa, pb);
for (auto [x, y] : pa) printf("%d %d\n", x, y);
for (auto [x, y] : pb) printf("%d %d\n", x, y);
return 0;
}