Submission #2923698
Source Code Expand
#include <iostream>
#include <algorithm>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <cstdio>
#include <cstring>
#include <math.h>
#include <string>
using namespace std;
typedef long long ll;
typedef double D;
typedef pair<ll,ll> P;
#define INF 100000000000
#define M 1000000007
#define F first
#define S second
#define PB push_back
vector<P>ans;
int n,a[55];
void solve(void){
for(int i=1;i<=n;i++){
if(a[i]==1){
for(int j=i-1;j>=1;j--){
ans.PB(P(j+1,j));
swap(a[j+1],a[j]);
}
break;
}
}
for(int i=1;i<=n;i++){
if(a[i]==2){
if(i%2){
for(int j=i-2;j>=1;j-=2){
ans.PB(P(j+2,j));
swap(a[j+2],a[j]);
}
ans.PB(P(2,3));
swap(a[2],a[3]);
}else{
for(int j=i-2;j>=1;j-=2){
ans.PB(P(j+2,j));
swap(a[j+2],a[j]);
}
ans.PB(P(1,2));
swap(a[1],a[2]);
}
break;
}
}
for(int i=1;i<n;i++){
if(a[i]==n){
for(int j=4;j<=i;j++){
ans.PB(P(j-2,j));
ans.PB(P(j-1,j));
swap(a[j-2],a[j]);
swap(a[j-1],a[j]);
}
for(int j=i+1;j<=n;j++){
ans.PB(P(j-3,j-2));
ans.PB(P(j,j-2));
ans.PB(P(j-3,j-2));
ans.PB(P(j-2,j-1));
ans.PB(P(j,j-2));
swap(a[j-3],a[j]);
swap(a[j-2],a[j]);
swap(a[j-1],a[j]);
}
break;
}
}
}
int main(void){
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
for(;n>3;n--){
solve();
}
if(n==3){
if(a[3]==1){
ans.PB(P(2,3));
swap(a[2],a[3]);
}
if(a[1]==1){
ans.PB(P(1,2));
swap(a[1],a[2]);
}
if(a[1]==3){
ans.PB(P(1,3));
swap(a[1],a[3]);
}
}
if(a[2]==1){
ans.PB(P(1,2));
swap(a[1],a[2]);
}
cout<<ans.size()<<endl;
for(int i=0;i<ans.size();i++){
cout<<ans[i].F<<' '<<ans[i].S<<endl;
}
}
Submission Info
Submission Time |
|
Task |
I - そーっとソート |
User |
nxteru |
Language |
C++14 (GCC 5.4.1) |
Score |
0 |
Code Size |
2448 Byte |
Status |
WA |
Exec Time |
8 ms |
Memory |
512 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
0 / 100 |
Status |
|
|
Set Name |
Test Cases |
Sample |
example_0.txt |
All |
backet_0.txt, backet_1.txt, backet_2.txt, backet_3.txt, backet_4.txt, corner_0.txt, corner_1.txt, corner_2.txt, example_0.txt, maxrand_0.txt, maxrand_1.txt, maxrand_2.txt, random_0.txt, random_1.txt, random_2.txt, random_3.txt, random_4.txt, shortswap_0.txt, shortswap_1.txt, shortswap_rev_0.txt, shortswap_rev_1.txt, smallrand_0.txt, smallrand_1.txt, smallrand_2.txt, smallrand_3.txt, smallrand_4.txt, example_0.txt |
Case Name |
Status |
Exec Time |
Memory |
backet_0.txt |
WA |
7 ms |
384 KB |
backet_1.txt |
WA |
6 ms |
384 KB |
backet_2.txt |
WA |
2 ms |
256 KB |
backet_3.txt |
WA |
3 ms |
256 KB |
backet_4.txt |
WA |
4 ms |
256 KB |
corner_0.txt |
AC |
1 ms |
256 KB |
corner_1.txt |
AC |
1 ms |
256 KB |
corner_2.txt |
WA |
7 ms |
384 KB |
example_0.txt |
AC |
1 ms |
256 KB |
maxrand_0.txt |
WA |
8 ms |
512 KB |
maxrand_1.txt |
WA |
7 ms |
384 KB |
maxrand_2.txt |
WA |
7 ms |
384 KB |
random_0.txt |
WA |
2 ms |
256 KB |
random_1.txt |
WA |
8 ms |
384 KB |
random_2.txt |
WA |
1 ms |
256 KB |
random_3.txt |
WA |
3 ms |
256 KB |
random_4.txt |
WA |
5 ms |
384 KB |
shortswap_0.txt |
WA |
8 ms |
384 KB |
shortswap_1.txt |
WA |
7 ms |
384 KB |
shortswap_rev_0.txt |
WA |
8 ms |
512 KB |
shortswap_rev_1.txt |
WA |
8 ms |
512 KB |
smallrand_0.txt |
AC |
1 ms |
256 KB |
smallrand_1.txt |
WA |
1 ms |
256 KB |
smallrand_2.txt |
WA |
1 ms |
256 KB |
smallrand_3.txt |
WA |
1 ms |
256 KB |
smallrand_4.txt |
WA |
1 ms |
256 KB |