結果

問題 No.5020 Averaging
ユーザー futamegawa
提出日時 2024-02-25 14:15:01
言語 C++17(gcc12)
(gcc 12.3.0 + boost 1.87.0)
結果
AC  
実行時間 2 ms / 1,000 ms
コード長 1,479 bytes
コンパイル時間 2,319 ms
コンパイル使用メモリ 208,052 KB
実行使用メモリ 6,676 KB
スコア 19,167,042
最終ジャッジ日時 2024-02-25 14:15:07
合計ジャッジ時間 4,119 ms
ジャッジサーバーID
(参考情報)
judge11 / judge15
純コード判定しない問題か言語
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 50
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using llu = long long unsigned;
vector<ll> dx = { 0, 0, -1, 1};
vector<ll> dy = {-1, 1, 0, 0};
#define TARGET 500000000000000000LL
ll scoreCal(ll a0, ll a1, ll b0, ll b1) {
ll newA = (a0 + a1) / 2;
ll newB = (b0 + b1) / 2;
ll score = max( abs(TARGET-newA), abs(TARGET-newB));
return score;
}
int main() {
int N;
cin >> N;
vector<ll> A(N), B(N);
for (int i=0; i<N; ++i) {
cin >> A[i] >> B[i];
}
vector<pair<int, int>> ret;
for (int i=0; i<50; ++i) {
int tmp = 0;
ll minScore = scoreCal(A[0], A[0], B[0], B[0]);
//cout << "1 - 1 minScore = " << minScore << endl;
for (int j=1; j<N; ++j) {
ll score = scoreCal(A[0], A[j], B[0], B[j]);
//cout << "1 - " << j+1 << " minScore = " << score << endl;
if (score < minScore) {
minScore = score;
tmp = j;
}
}
if (tmp == 0) { break; }
ret.push_back(make_pair(1, tmp+1));
//cout << "1 - " << tmp+1 << " execute" << endl;
ll newA = (A[0] + A[tmp]) / 2;
ll newB = (B[0] + B[tmp]) / 2;
A[0] = A[tmp] = newA;
B[0] = B[tmp] = newB;
//for (int i=0; i<N; ++i) { cout << A[i] << " " << B[i] << endl; }
}
cout << ret.size() << endl;
for (auto x : ret) {
cout << x.first << " " << x.second << endl;
}
return 0;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0