Submission #42769966
Source Code Expand
#include<cstdio>
#include<vector>
using namespace std;
#define Ls(i,l,r) for(int i=l;i<r;++i)
#define Rs(i,l,r) for(int i=l;i>r;--i)
#define Le(i,l,r) for(int i=l;i<=r;++i)
#define Re(i,l,r) for(int i=l;i>=r;--i)
#define L(i,l) for(int i=0;i<l;++i)
#define E(i,l) for(int i=1;i<=l;++i)
#define W(t) while(t--)
const int N=1010;
int n,cnt;
vector<pair<int,int>>ans;
int main(){
#ifndef ONLINE_JUDGE
freopen("1.in","r",stdin);
// freopen("1.out","w",stdout);
// ios::sync_with_stdio(0);
// cin.tie(0);
// cout.tie(0);
#endif
// Insert Code Here
scanf("%d",&n);
vector<int>p(n+1);
E(i, n)scanf("%d",&p[i]);
E(i, n)
Le(j, i+1, n)cnt+=p[i]>p[j];
if(cnt&1)return puts("No"),0;
puts("Yes");
for(;;){
int m=0;
E(i, n)
if(i!=p[i]){m=i;break;}
if(!m)break;
int k=0;
E(i, n)
if(p[i]==m){k=i;break;}
if(k<n){
int x=p[k],y=p[k+1];
p.erase(p.begin()+k,p.begin()+k+2);
p.insert(p.begin()+m,{x,y});
ans.push_back({k,m-1});
}
else{
int x=p[n-1],y=p[n];
ans.push_back({n-1,n-3});
p.erase(p.begin()+n-1,p.end());
p.insert(p.begin()+n-2,{x,y});
}
}
printf("%d\n",ans.size());
for(auto v:ans)printf("%d %d\n",v.first,v.second);
return 0;
}
Submission Info
| Submission Time |
|
| Task |
B - Insertion Sort 2 |
| User |
WUSICHENG |
| Language |
C++ (GCC 9.2.1) |
| Score |
500 |
| Code Size |
1447 Byte |
| Status |
AC |
| Exec Time |
9 ms |
| Memory |
3192 KiB |
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:51:14: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘std::vector<std::pair<int, int> >::size_type’ {aka ‘long unsigned int’} [-Wformat=]
51 | printf("%d\n",ans.size());
| ~^ ~~~~~~~~~~
| | |
| int std::vector<std::pair<int, int> >::size_type {aka long unsigned int}
| %ld
./Main.cpp:23:10: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
23 | scanf("%d",&n);
| ~~~~~^~~~~~~~~
./Main.cpp:25:17: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
25 | E(i, n)scanf("%d",&p[i]);
| ~~~~~^~~~~~~~~~~~
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
500 / 500 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt |
| All |
00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 02_handmade_01.txt, 02_handmade_02.txt |
| Case Name |
Status |
Exec Time |
Memory |
| 00_sample_01.txt |
AC |
8 ms |
3120 KiB |
| 00_sample_02.txt |
AC |
2 ms |
2964 KiB |
| 00_sample_03.txt |
AC |
3 ms |
3072 KiB |
| 01_test_01.txt |
AC |
2 ms |
3156 KiB |
| 01_test_02.txt |
AC |
8 ms |
3192 KiB |
| 01_test_03.txt |
AC |
5 ms |
3040 KiB |
| 01_test_04.txt |
AC |
4 ms |
3060 KiB |
| 01_test_05.txt |
AC |
6 ms |
3192 KiB |
| 01_test_06.txt |
AC |
4 ms |
3036 KiB |
| 01_test_07.txt |
AC |
3 ms |
3060 KiB |
| 01_test_08.txt |
AC |
3 ms |
3156 KiB |
| 01_test_09.txt |
AC |
3 ms |
3176 KiB |
| 01_test_10.txt |
AC |
6 ms |
3160 KiB |
| 01_test_11.txt |
AC |
5 ms |
3060 KiB |
| 01_test_12.txt |
AC |
5 ms |
3076 KiB |
| 01_test_13.txt |
AC |
4 ms |
3036 KiB |
| 01_test_14.txt |
AC |
9 ms |
3176 KiB |
| 01_test_15.txt |
AC |
4 ms |
2964 KiB |
| 01_test_16.txt |
AC |
3 ms |
3064 KiB |
| 01_test_17.txt |
AC |
2 ms |
2964 KiB |
| 01_test_18.txt |
AC |
2 ms |
3024 KiB |
| 01_test_19.txt |
AC |
2 ms |
3156 KiB |
| 01_test_20.txt |
AC |
2 ms |
3084 KiB |
| 01_test_21.txt |
AC |
2 ms |
3092 KiB |
| 02_handmade_01.txt |
AC |
8 ms |
3192 KiB |
| 02_handmade_02.txt |
AC |
6 ms |
3072 KiB |