結果
| 問題 |
No.5007 Steiner Space Travel
|
| コンテスト | |
| ユーザー |
yas_yasyu
|
| 提出日時 | 2023-04-25 04:21:18 |
| 言語 | C++17(gcc12) (gcc 12.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 1,000 ms |
| コード長 | 2,079 bytes |
| コンパイル時間 | 4,700 ms |
| コンパイル使用メモリ | 265,960 KB |
| 実行使用メモリ | 4,372 KB |
| スコア | 1,221,702 |
| 最終ジャッジ日時 | 2023-04-25 04:21:25 |
| 合計ジャッジ時間 | 7,000 ms |
|
ジャッジサーバーID (参考情報) |
judge14 / judge13 |
| 純コード判定しない問題か言語 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 30 |
ソースコード
#include <atcoder/all>
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
const long double EPS = 1e-10;
const long long INF = 1e18;
const long double PI = acos(-1.0L);
const double TIME_LIMIT = 0.95;
struct Planet {
int a;
int b;
int idx;
Planet(int _a, int _b, int _idx) {
a = _a;
b = _b;
idx = _idx;
}
Planet(const Planet &old) {
a = old.a;
b = old.b;
idx = old.idx;
}
};
bool operator<(const Planet &left, const Planet &right) {
ll la, lb, ra, rb;
ll leftDist, rightDist;
la = left.a;
lb = left.b;
leftDist = la * la + lb * lb;
ra = right.a;
rb = right.b;
rightDist = ra * ra + rb * rb;
return leftDist < rightDist;
};
struct Station {
int a;
int b;
int idx;
Station(int _a, int _b, int _idx) {
a = _a;
b = _b;
idx = _idx;
}
Station(const Station &old) {
a = old.a;
b = old.b;
idx = old.idx;
}
};
int N, M;
vector<Planet> planet;
vector<Station> station;
const int A = 5;
/*Target to minimize */
ll energy = 0;
void Input() {
cin >> N >> M;
for(int i = 0; i < N; i++) {
int a, b;
cin >> a >> b;
Planet p(a, b, i + 1);
planet.push_back(p);
}
return;
}
void OutputStation() {
for(int i = 0; i < M; i++) {
cout << station[i].a << " " << station[i].b << endl;
}
return;
}
void OutputWayPoint(int type, int idx) { cout << type << " " << idx << endl; }
void OutputRoute() {
int V = planet.size() + 1;
cout << V << endl;
OutputWayPoint(1, 1);
for(int i = 1; i < N; i++) {
OutputWayPoint(1, i + 1);
}
OutputWayPoint(1, 1);
return;
}
void solve() {
for(int i = 1; i < M + 1; i++) {
Station s(0, i, i);
station.push_back(s);
}
sort(planet.begin() + 1, planet.end());
return;
}
int main() {
Input();
solve();
OutputStation();
OutputRoute();
return 0;
}
yas_yasyu