結果
| 問題 | No.3743 World Mapper |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-09-18 09:14:40 |
| 言語 | C++23 (gcc 15.3.0 + boost 1.92.0 + ACL) |
| 結果 |
AC
不安定
|
| 実行時間 | 1 ms / 2,000 ms |
| + 654µs | |
| コード長 | 1,318 bytes |
| 記録 | |
| コンパイル時間 | 2,063 ms |
| コンパイル使用メモリ | 342,852 KB |
| 実行使用メモリ | 9,928 KB |
| 最終ジャッジ日時 | 2026-09-19 13:24:21 |
| 合計ジャッジ時間 | 10,306 ms |
|
ジャッジサーバーID (参考情報) |
judge5_0 / judge1_1 |
(要ログイン)
| サブタスク | 配点 | 結果 |
|---|---|---|
| 部分点1 | 10 % | AC * 4 |
| 部分点2 | 10 % | AC * 9 |
| 部分点3 | 10 % | AC * 14 |
| 部分点4 | 10 % | AC * 19 |
| 部分点5 | 10 % | AC * 24 |
| 部分点6 | 10 % | AC * 29 |
| 部分点7 | 10 % | AC * 34 |
| 部分点8 | 10 % | AC * 39 |
| 部分点9 | 10 % | AC * 44 |
| 満点 | 10 % | AC * 49 |
| 合計 | 5 * 100% = 500 点 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N;
cin >> N;
constexpr ll P = 2503;
constexpr ll G = 709;
constexpr ll M = P * (P - 1);
// Sidon set
vector<ll> a;
a.reserve(P - 1);
ll pw = 1;
for (ll k = 1; k <= P - 1; k++) {
pw = pw * G % P;
ll x = (k * P - pw * (P - 1)) % M;
if (x < 0) x += M;
a.push_back(x);
}
sort(a.begin(), a.end());
// 蛇行順での番号
auto id = [&](int r, int c) -> int {
if (r % 2 == 0) {
return r * N + c;
} else {
return r * N + (N - 1 - c);
}
};
auto weight = [&](int r1, int c1, int r2, int c2) -> ll {
return abs(a[id(r1, c1)] - a[id(r2, c2)]);
};
// v_{i,j}
// (r,c) - (r+1,c)
for (int r = 0; r + 1 < N; r++) {
for (int c = 0; c < N; c++) {
if (c) cout << ' ';
cout << weight(r, c, r + 1, c);
}
cout << '\n';
}
// h_{i,j}
// (r,c) - (r,c+1)
for (int r = 0; r < N; r++) {
for (int c = 0; c + 1 < N; c++) {
if (c) cout << ' ';
cout << weight(r, c, r, c + 1);
}
cout << '\n';
}
return 0;
}