結果

問題 No.5007 Steiner Space Travel
ユーザー yas_yasyuyas_yasyu
提出日時 2023-04-25 04:40:38
言語 C++17
(gcc 12.3.0 + boost 1.83.0)
結果
AC  
実行時間 3 ms / 1,000 ms
コード長 2,318 bytes
コンパイル時間 4,878 ms
コンパイル使用メモリ 267,344 KB
実行使用メモリ 4,372 KB
スコア 1,650,958
最終ジャッジ日時 2023-04-25 04:40:45
合計ジャッジ時間 7,105 ms
ジャッジサーバーID
(参考情報)
judge14 / judge12
純コード判定しない問題か言語
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
4,372 KB
testcase_01 AC 2 ms
4,372 KB
testcase_02 AC 2 ms
4,368 KB
testcase_03 AC 2 ms
4,372 KB
testcase_04 AC 2 ms
4,368 KB
testcase_05 AC 2 ms
4,368 KB
testcase_06 AC 2 ms
4,368 KB
testcase_07 AC 2 ms
4,372 KB
testcase_08 AC 2 ms
4,372 KB
testcase_09 AC 2 ms
4,368 KB
testcase_10 AC 2 ms
4,372 KB
testcase_11 AC 2 ms
4,372 KB
testcase_12 AC 2 ms
4,368 KB
testcase_13 AC 2 ms
4,368 KB
testcase_14 AC 3 ms
4,368 KB
testcase_15 AC 2 ms
4,372 KB
testcase_16 AC 2 ms
4,372 KB
testcase_17 AC 2 ms
4,372 KB
testcase_18 AC 2 ms
4,368 KB
testcase_19 AC 2 ms
4,372 KB
testcase_20 AC 2 ms
4,372 KB
testcase_21 AC 2 ms
4,372 KB
testcase_22 AC 2 ms
4,368 KB
testcase_23 AC 2 ms
4,368 KB
testcase_24 AC 2 ms
4,368 KB
testcase_25 AC 2 ms
4,372 KB
testcase_26 AC 2 ms
4,372 KB
testcase_27 AC 2 ms
4,368 KB
testcase_28 AC 2 ms
4,368 KB
testcase_29 AC 2 ms
4,372 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

#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;
    }
};

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;
Planet startPlanet(0,0,0);

bool PlanetComp(const Planet &left, const Planet &right) {
    ll la, lb, ra, rb;
    ll leftDist, rightDist;
    la = left.a;
    lb = left.b;
    leftDist = (la - startPlanet.a) * (la - startPlanet.a) + (lb - startPlanet.b) * (lb - startPlanet.b);
    ra = right.a;
    rb = right.b;
    rightDist = (ra - startPlanet.a) * (ra - startPlanet.a) + (rb - startPlanet.b) * (rb - startPlanet.b);
    return leftDist < rightDist;
};


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);
    }
	startPlanet = planet[0];
    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, planet[0].idx);
    for(int i = 1; i < N; i++) {
        OutputWayPoint(1, planet[i].idx);
    }
    OutputWayPoint(1, planet[0].idx);

    return;
}

void solve() {
    for(int i = 1; i < M + 1; i++) {
        Station s(0, i, i);
        station.push_back(s);
    }
    sort(planet.begin(), planet.end(), PlanetComp);
    return;
}

int main() {
    Input();

    solve();

    OutputStation();
    OutputRoute();

    return 0;
}
0