結果
| 問題 |
No.2029 Swap Min Max Min
|
| コンテスト | |
| ユーザー |
publfl2
|
| 提出日時 | 2022-08-05 21:50:26 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 1,212 bytes |
| コンパイル時間 | 613 ms |
| コンパイル使用メモリ | 56,240 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-09-15 20:00:18 |
| 合計ジャッジ時間 | 3,154 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 WA * 1 |
| other | AC * 31 WA * 11 |
ソースコード
#include <stdio.h>
#include <vector>
#include <algorithm>
int x[200010],y[200010];
std::vector<int> V;
int main()
{
int a;
scanf("%d",&a);
for(int i=1;i<=a;i++) scanf("%d",&x[i]);
for(int i=1;i<=a;i++) y[i] = x[i];
std::sort(y+1,y+a+1);
int limit = y[a/2];
if(a%2==1)
{
long long int ans = 0;
V.clear();
for(int i=1;i<=a;i++) if(x[i]<=limit) V.push_back(i);
for(int i=0;i<V.size();i++) ans += abs(V[i]-(2*i+2));
V.clear();
for(int i=1;i<=a;i++) if(x[i]>limit) V.push_back(i);
for(int i=0;i<V.size();i++) ans += abs(V[i]-(2*i+1));
printf("%d %lld",limit,ans/2);
}
else
{
long long int ans1 = 0;
V.clear();
for(int i=1;i<=a;i++) if(x[i]<=limit) V.push_back(i);
for(int i=0;i<V.size();i++) ans1 += abs(V[i]-(2*i+2));
V.clear();
for(int i=1;i<=a;i++) if(x[i]>limit) V.push_back(i);
for(int i=0;i<V.size();i++) ans1 += abs(V[i]-(2*i+1));
long long int ans2 = 0;
V.clear();
for(int i=1;i<=a;i++) if(x[i]<=limit) V.push_back(i);
for(int i=0;i<V.size();i++) ans2 += abs(V[i]-(2*i+1));
V.clear();
for(int i=1;i<=a;i++) if(x[i]>limit) V.push_back(i);
for(int i=0;i<V.size();i++) ans2 += abs(V[i]-(2*i+2));
printf("%d %lld",limit,(ans1<ans2?ans1:ans2)/2);
}
}
publfl2