結果
問題 | No.5009 Draw A Convex Polygon |
ユーザー | hotman78 |
提出日時 | 2022-12-02 11:51:16 |
言語 | C++17 (gcc 12.3.0 + boost 1.83.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 870 bytes |
コンパイル時間 | 2,053 ms |
実行使用メモリ | 57,804 KB |
スコア | 0 |
平均クエリ数 | 909091.00 |
最終ジャッジ日時 | 2022-12-02 11:51:26 |
合計ジャッジ時間 | 5,429 ms |
ジャッジサーバーID (参考情報) |
judge14 / judge13 |
(要ログイン)
ソースコード
#include<bits/stdc++.h> using namespace std; using lint=long long; int main(){ int n=1000000; vector<pair<lint,lint>>v; for (int i=1;i<n;++i){ for(int j=1;j<i;++j){ if(gcd(i,j)!=1){ continue; } if(v.size()==n-2)break; v.emplace_back(i-j,j); } } sort(v.begin(),v.end(),[](auto s,auto t){ return s.first*t.second<s.second*t.first; }); vector<pair<lint,lint>>ans; ans.emplace_back(0LL,0LL); for(auto [s,t]:v){ ans.emplace_back(ans.back().first+s,ans.back ().second+t); } ans.emplace_back(ans.back().first,0LL); assert(ans.size()==n); for(auto [s,t]:ans){ assert(0<=s&&s-1000000000LL<1000000000LL); assert(0<=t&&t-1000000000LL<1000000000LL); cout<<t-1000000000LL<<" "<<s-1000000000LL<<endl; } }