結果
| 問題 | No.3743 World Mapper |
| コンテスト | |
| ユーザー |
競プロするわりとねこ
|
| 提出日時 | 2026-09-19 16:22:13 |
| 言語 | C++23(gcc16) (gcc 16.1.0 + boost 1.92.0 + ACL) |
| 結果 |
WA
不安定
|
| 実行時間 | - |
| コード長 | 2,687 bytes |
| 記録 | |
| コンパイル時間 | 3,021 ms |
| コンパイル使用メモリ | 362,492 KB |
| 実行使用メモリ | 9,920 KB |
| 最終ジャッジ日時 | 2026-09-19 16:22:34 |
| 合計ジャッジ時間 | 14,693 ms |
|
ジャッジサーバーID (参考情報) |
judge2_0 / judge3_0 |
(要ログイン)
| サブタスク | 配点 | 結果 |
|---|---|---|
| 部分点1 | 10 % | AC * 4 |
| 部分点2 | 10 % | AC * 6 WA * 3 |
| 部分点3 | 10 % | AC * 6 WA * 8 |
| 部分点4 | 10 % | AC * 6 WA * 13 |
| 部分点5 | 10 % | AC * 6 WA * 18 |
| 部分点6 | 10 % | AC * 6 WA * 23 |
| 部分点7 | 10 % | AC * 6 WA * 28 |
| 部分点8 | 10 % | AC * 6 WA * 33 |
| 部分点9 | 10 % | AC * 6 WA * 38 |
| 満点 | 10 % | AC * 6 WA * 43 |
| 合計 | 5 * 10% = 50 点 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
//#include <atcoder/all>
//using namespace atcoder;
#define ll long long
#define GET_REP(_1, _2, _3, _4,NAME, ...) NAME
#define rep1(i, n) for (int i = 0; i < (n); ++i)
#define rep2(i, m, n) for (int i = (n); i < (m); ++i)
#define rep3(i, m, n, o) for (int i = (n); i < (m); i+=o)
#define rep(...) GET_REP(__VA_ARGS__, rep3, rep2, rep1)(__VA_ARGS__)
#define rrep1(i,n) for (int i = (n); i > 0; i--)
#define nall(a) a.begin(),a.end()
#define rall(a) a.rbegin(),a.rend()
#define fi first
#define se second
#define getvec(a,n,s) \
vector<s> a(n);\
for (auto& i:a) cin >>i;
#define int long long
#define vi vector<int>
#define vpii vector<pair<int,int>>
#define vs vector<string>
#define vvi vector<vector<int>>
#define vvs vector<vector<string>>
template <typename T>
auto vec(size_t n, T val) {
return std::vector<T>(n, val);
}
template <typename... Sizes>
auto vec(size_t n, Sizes... sizes) {
return std::vector<decltype(vec(sizes...))>(n, vec(sizes...));
}
random_device rd;
mt19937 gen(rd());
uniform_int_distribution<int> dist(1999, 300000);
constexpr long long INF = (1LL << 60);
// 辺の情報
struct Edge
{
// 行先
int to;
// コスト
int cost;
};
using Graph = std::vector<std::vector<Edge>>;
// { distance, from }
using Pair = std::pair<long long, int>;
// ダイクストラ法 (1.1 基本実装)
// distances は頂点数と同じサイズ, 全要素 INF で初期化しておく
void Dijkstra(const Graph& graph, std::vector<long long>& distances, int startIndex)
{
// 「現時点での最短距離, 頂点」の順に取り出す priority_queue
// デフォルトの priority_queue は降順に取り出すため std::greater を使う
std::priority_queue<Pair, std::vector<Pair>, std::greater<Pair>> q;
q.emplace((distances[startIndex] = 0), startIndex);
while (!q.empty())
{
const long long distance = q.top().first;
const int from = q.top().second;
q.pop();
// 最短距離でなければ処理しない
if (distances[from] < distance)
{
continue;
}
// 現在の頂点からの各辺について
for (const auto& edge : graph[from])
{
// to までの新しい距離
const long long d = (distances[from] + edge.cost);
// d が現在の記録より小さければ更新
if (d < distances[edge.to])
{
q.emplace((distances[edge.to] = d), edge.to);
}
}
}
}
signed main() {
int n;
cin >> n;
rep(i, n - 1) {
rep(j, n) {
cout << dist(gen) << " ";
}
cout << endl;
}
rep(i, n) {
rep(j, n - 1) {
cout << dist(gen) << " ";
}
cout << endl;
}
}
競プロするわりとねこ