結果
問題 | No.5020 Averaging |
ユーザー |
![]() |
提出日時 | 2024-02-25 14:47:46 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,181 bytes |
コンパイル時間 | 1,767 ms |
コンパイル使用メモリ | 173,924 KB |
実行使用メモリ | 6,676 KB |
スコア | 12,110,557 |
最終ジャッジ日時 | 2024-02-25 14:47:50 |
合計ジャッジ時間 | 3,432 ms |
ジャッジサーバーID (参考情報) |
judge11 / judge15 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 49 WA * 1 |
ソースコード
#include<bits/stdc++.h> using namespace std; #define rep(i, n) for(int i = 0; i < (int)(n); i++) using ll = long long; // グローバル変数 ll n; vector<ll> a, b; vector<pair<ll, ll>> ans; ll st = 500000000000000000; void input(){ cin >> n; rep(i, n){ ll u, v; cin >> u >> v; a.push_back(u); b.push_back(v); } } pair<ll, ll> average(int idx1, int idx2){ return {(a[idx1]+a[idx2])/2, (b[idx1]+b[idx2])/2}; } ll score(ll num1, ll num2){ return max(st-num1, st-num2); } ll use(){ pair<ll, ll> ret; // s{score, idx} rep(i, n-1){ pair<ll, ll> tmp = average(0, i+1); ll tmps = score(tmp.first, tmp.second); if(tmps < ret.first) ret = {tmps, i+1}; } ans.push_back({1, ret.second+1}); pair<ll, ll> c = average(0, ret.second); a[0] = c.first; a[ret.second] = c.first; b[0] = c.second; b[ret.second] = c.second; return ret.second; } void calc(){ rep(i, 50){ use(); } } void output(){ cout << ans.size() << endl; for(auto i : ans){ cout << i.first << " " << i.second << endl; } } int main(){ input(); calc(); output(); }