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
AC × 3
AC × 26
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