結果
| 問題 |
No.397 NO MORE KADOMATSU
|
| ユーザー |
|
| 提出日時 | 2016-07-16 00:14:37 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 31 ms / 2,000 ms |
| コード長 | 1,379 bytes |
| コンパイル時間 | 1,560 ms |
| コンパイル使用メモリ | 166,488 KB |
| 実行使用メモリ | 25,448 KB |
| 平均クエリ数 | 80.44 |
| 最終ジャッジ日時 | 2024-07-17 00:09:13 |
| 合計ジャッジ時間 | 3,360 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 18 |
コンパイルメッセージ
main.cpp: In function ‘int main()’:
main.cpp:52:35: warning: ‘pos’ may be used uninitialized [-Wmaybe-uninitialized]
52 | v.insert(v.begin()+i,v[pos]);
| ^
main.cpp:33:35: warning: ‘pos’ may be used uninitialized in this function [-Wmaybe-uninitialized]
33 | v.insert(v.begin()+i,v[pos-1]);
| ~~~^~
ソースコード
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
int n,a,d;
cin>>n;
vector<int> v;
for(int i=0; i<n; ++i){
cin>>a;
v.push_back(a);
}
int f;
int c;
c=0;
vector<pair<int,int>> vp;
while(1){
f=0;
for(int i=1; i<n-1; ++i){
int x,y,z;
x=v[i-1];
y=v[i];
z=v[i+1];
if(x<y && y>z){
int pos;
for(int j=n-1; j>=0; --j){
if(y>v[j]){
pos=j;
break;
}
}
v.erase(v.begin()+i);
v.insert(v.begin()+i,v[pos-1]);
v.erase(v.begin()+pos);
v.insert(v.begin()+pos,y);
f=1;
c++;
pair<int,int> p;
p=make_pair(i,pos);
vp.push_back(p);
break;
}
if(x>y && y<z){
int pos;
for(int j=0; j<n; ++j){
if(y<v[j]){
pos=j;
break;
}
}
v.erase(v.begin()+i);
v.insert(v.begin()+i,v[pos]);
v.erase(v.begin()+pos);
v.insert(v.begin()+pos,y);
f=1;
c++;
pair<int,int> p;
p=make_pair(pos,i);
vp.push_back(p);
break;
}
}
if(f==0){
break;
}
}
cout<<c<<endl;
pair<int,int> p;
for(int i=0; i<vp.size(); ++i){
p=vp[i];
cout<<p.first<<" "<<p.second<<endl;
}
cin>>d;
return 0;
}