結果
| 問題 |
No.2797 Square Tile
|
| コンテスト | |
| ユーザー |
shobonvip
|
| 提出日時 | 2024-06-14 21:19:38 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 906 bytes |
| コンパイル時間 | 2,371 ms |
| コンパイル使用メモリ | 197,452 KB |
| 最終ジャッジ日時 | 2025-02-21 21:38:13 |
|
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 14 WA * 7 |
ソースコード
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
ll a, b;
cin >> a >> b;
ll n = a * a + b * b;
ll area_left = n * n;
ll a_left = n;
ll b_left = n;
ll x = 0;
ll y = 0;
vector<pair<ll,ll>> a_list;
vector<pair<ll,ll>> b_list;
ll g = __gcd(a * a, b * b);
int mode = 0;
for (int f=0; f<g; f++){
for (int t=0; t<(a*a+b*b)/g*2; t++){
if (mode == 0){
a_list.push_back(pair(x, y));
x += a;
x %= n;
a_left -= 1;
area_left -= a * a;
}else{
b_list.push_back(pair(x, y));
y += b;
y %= n;
b_left -= 1;
area_left -= b * b;
}
mode ^= 1;
}
if (mode == 0){
x += a;
x %= n;
}else{
y += b;
y %= n;
}
}
assert(a_left == 0);
assert(b_left == 0);
assert(area_left == 0);
for (auto [x, y]: a_list){
cout << x << ' ' << y << '\n';
}
for (auto [x, y]: b_list){
cout << x << ' ' << y << '\n';
}
}
shobonvip