結果

問題 No.5009 Draw A Convex Polygon
ユーザー ripityripity
提出日時 2022-12-02 23:37:18
言語 C++17
(gcc 12.3.0 + boost 1.83.0)
結果
TLE  
実行時間 -
コード長 935 bytes
コンパイル時間 2,873 ms
実行使用メモリ 15,232 KB
スコア 0
最終ジャッジ日時 2022-12-02 23:37:28
合計ジャッジ時間 9,825 ms
ジャッジサーバーID
(参考情報)
judge12 / judge16
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 TLE -
権限があれば一括ダウンロードができます

ソースコード

diff #

#pragma GCC target("avx")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#include <bits/stdc++.h>
using namespace std;
int main() {
    cin.tie(0);
    ios::sync_with_stdio(false);
    int N = 500000;
    vector<pair<long long, long long>> v;
    set<pair<long long, long long>> s;
    for( int p = 1; p <= 2000; p++ ) {
        for( int q = 1; q <= 2000; q++ ) {
            long long g = gcd(p, q);
            if( s.insert(make_pair(p/g, q/g)).second ) {
                v.emplace_back(make_pair(p/g, q/g));
            }
        }
    }
    sort(v.begin(), v.end(), [](pair<long long, long long>& x, pair<long long, long long>& y) {
        return x.first*y.second < y.first*x.second;
    });
    long long x = -1000000000, y = -1000000000;
    cout << N << endl;
    for( int i = 0; i < N; i++ ) {
        cout << x << ' ' << y << '\n';
        x += v[i].first;
        y += v[i].second;
    }
    cout.flush();
}
0