結果
| 問題 |
No.1077 Noelちゃんと星々4
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2020-06-12 22:30:02 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,362 bytes |
| コンパイル時間 | 1,765 ms |
| コンパイル使用メモリ | 174,092 KB |
| 実行使用メモリ | 6,948 KB |
| 最終ジャッジ日時 | 2024-06-24 05:21:00 |
| 合計ジャッジ時間 | 2,613 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 1 WA * 19 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
int y[n];
for ( int i = 0; i < n; i++ ) {
cin >> y[i];
}
if ( n == 1 ) { cout << 0 << endl; return 0; }
long long sum = 0;
int ch = -1;
vector<int> v;
for ( int i = 0; i < n; i++ ) {
if ( ch == -1 && i != (n-1) && y[i] <= y[i+1] ) { continue; }
if ( ch == -1 && i == n-1 ) { break; }
if ( ch == -1 ) {
ch = y[i];
v.push_back(y[i]);
} else if ( i != (n-1) && y[i] < ch ) {
v.push_back(y[i]);
} else {
if ( i == (n-1) && y[i] < ch ) { v.push_back(y[i]); }
sort(v.begin(), v.end());
int mid;
if ( v.size()%2 == 1 ) {
mid = v[v.size()/2];
for ( int k = 0; k < v.size(); k++ ) {
sum += abs(mid-v[k]);
}
} else {
mid = v[(v.size()/2)-1] + v[v.size()/2];
if ( mid%2 == 0 ) {
mid /= 2;
for ( int k = 0; k < v.size(); k++ ) {
sum += abs(mid-v[k]);
}
} else {
mid /= 2;
int k;
for ( k = 0; k < v.size()/2; k++) {
sum += abs(mid-v[k]);
}
mid++;
for ( ; k < v.size(); k++) {
sum += abs(mid-v[k]);
}
}
}
v.clear();
i--;
ch = -1;
}
}
cout << sum << endl;
return 0;
}