Submission #66168423
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
typedef pair<int,int> pii;
const int MX=111;
int n,a[MX],b[MX],sa[MX],sb[MX];
vector<pii> ans;
bool was;
void local_swap(int i, int j) {
ans.emplace_back(i,j);
swap(a[i],a[j]);
--a[i];
++a[j];
}
pii perform_swap(int i, int j) {
if (i==1 && j==n) {
perform_swap(1,2);
i=2;
}
if (i>1) {
local_swap(1,i);
local_swap(1,j);
local_swap(1,i);
} else {
local_swap(i,n);
local_swap(j,n);
local_swap(i,n);
}
return {i,j};
}
int main() {
scanf("%d",&n);
for (int i=1; i<=n; i++) { scanf("%d",&a[i]); sa[i-1]=a[i]; }
for (int i=1; i<=n; i++) { scanf("%d",&b[i]); sb[i-1]=b[i]; if (b[i]!=a[i]) was=true; }
if (!was) {
puts("Yes");
puts("0");
return 0;
}
if (n==2) {
if (a[1]==b[2]-1 && a[2]==b[1]+1) {
puts("Yes");
puts("1");
puts("1 2");
} else puts("No");
return 0;
}
sort(sa,sa+n);
sort(sb,sb+n);
while (true) {
int wl=-1,wr=-1,idxl,idxr;
for (int i=0; i<n; i++) if (sa[i]<sb[i]) { wl=i; break; }
for (int i=0; i<n; i++) if (sa[i]>sb[i]) { wr=i; break; }
if (wl==-1 && wr==-1) break;
if (wl==-1 || wr==-1) { puts("No"); return 0; }
for (int i=1; i<=n; i++) if (sa[wl]==a[i]) { idxl=i; break; }
for (int i=1; i<=n; i++) if (i!=idxl && sa[wr]==a[i]) { idxr=i; break; }
pair<int,int> p{idxl,idxr};
if (idxl>idxr) p=perform_swap(idxr,idxl);
local_swap(p.first,p.second);
--sa[wr];
++sa[wl];
sort(sa,sa+n);
}
for (int i=1; i<=n; i++) if (a[i]!=b[i]) {
was=false;
for (int j=i+1; j<=n; j++) if (a[j]==b[i]) {
perform_swap(i,j);
was=true;
break;
}
if (!was) { puts("No"); return 0; }
}
puts("Yes");
printf("%d\n",int(ans.size()));
for (int i=0; i<ans.size(); i++) printf("%d %d\n",ans[i].first,ans[i].second);
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | C - Error Swap |
| User | Ra16bit |
| Language | C++ 20 (gcc 12.2) |
| Score | 0 |
| Code Size | 1942 Byte |
| Status | WA |
| Exec Time | 1 ms |
| Memory | 3872 KiB |
Compile Error
Main.cpp: In function ‘int main()’:
Main.cpp:75:18: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<std::pair<int, int> >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
75 | for (int i=0; i<ans.size(); i++) printf("%d %d\n",ans[i].first,ans[i].second);
| ~^~~~~~~~~~~
Main.cpp:31:8: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
31 | scanf("%d",&n);
| ~~~~~^~~~~~~~~
Main.cpp:32:35: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
32 | for (int i=1; i<=n; i++) { scanf("%d",&a[i]); sa[i-1]=a[i]; }
| ~~~~~^~~~~~~~~~~~
Main.cpp:33:35: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
33 | for (int i=1; i<=n; i++) { scanf("%d",&b[i]); sb[i-1]=b[i]; if (b[i]!=a[i]) was=true; }
| ~~~~~^~~~~~~~~~~~
Main.cpp:58:34: warning: ‘idxr’ may be used uninitialized [-Wmaybe-uninitialized]
58 | if (idxl>idxr) p=perform_swap(idxr,idxl);
| ~~~~~~~~~~~~^~~~~~~~~~~
Main.cpp:50:26: note: ‘idxr’ was declared here
50 | int wl=-1,wr=-1,idxl,idxr;
| ^~~~
Main.cpp:56:30: warning: ‘idxl’ may be used uninitialized [-Wmaybe-uninitialized]
56 | for (int i=1; i<=n; i++) if (i!=idxl && sa[wr]==a[i]) { idxr=i; break; }
| ^~
Main.cpp:50:21: note: ‘idxl’ was declared here
50 | int wl=-1,wr=-1,idxl,idxr;
| ^~~~
Judge Result
| Set Name | Sample | All | ||||||
|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 0 / 700 | ||||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | example_00.txt, example_01.txt, example_02.txt |
| All | example_00.txt, example_01.txt, example_02.txt, test_00.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt, test_44.txt, test_45.txt, test_46.txt, test_47.txt, test_48.txt, test_49.txt, test_50.txt, test_51.txt, test_52.txt, test_53.txt, test_54.txt, test_55.txt, test_56.txt, test_57.txt, test_58.txt, test_59.txt, test_60.txt, test_61.txt, test_62.txt, test_63.txt, test_64.txt, test_65.txt, test_66.txt, test_67.txt, test_68.txt, test_69.txt, test_70.txt, test_71.txt, test_72.txt, test_73.txt, test_74.txt, test_75.txt, test_76.txt, test_77.txt, test_78.txt, test_79.txt, test_80.txt, test_81.txt, test_82.txt, test_83.txt, test_84.txt, test_85.txt, test_86.txt, test_87.txt, test_88.txt, test_89.txt, test_90.txt, test_91.txt, test_92.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| example_00.txt | AC | 1 ms | 3652 KiB |
| example_01.txt | AC | 1 ms | 3744 KiB |
| example_02.txt | AC | 1 ms | 3584 KiB |
| test_00.txt | AC | 1 ms | 3672 KiB |
| test_01.txt | AC | 1 ms | 3604 KiB |
| test_02.txt | AC | 1 ms | 3680 KiB |
| test_03.txt | AC | 1 ms | 3604 KiB |
| test_04.txt | AC | 1 ms | 3656 KiB |
| test_05.txt | AC | 1 ms | 3680 KiB |
| test_06.txt | AC | 1 ms | 3676 KiB |
| test_07.txt | AC | 1 ms | 3680 KiB |
| test_08.txt | AC | 1 ms | 3632 KiB |
| test_09.txt | AC | 1 ms | 3804 KiB |
| test_10.txt | AC | 1 ms | 3592 KiB |
| test_11.txt | AC | 1 ms | 3832 KiB |
| test_12.txt | AC | 1 ms | 3672 KiB |
| test_13.txt | AC | 1 ms | 3632 KiB |
| test_14.txt | AC | 1 ms | 3676 KiB |
| test_15.txt | AC | 1 ms | 3564 KiB |
| test_16.txt | AC | 1 ms | 3672 KiB |
| test_17.txt | AC | 1 ms | 3808 KiB |
| test_18.txt | AC | 1 ms | 3732 KiB |
| test_19.txt | AC | 1 ms | 3652 KiB |
| test_20.txt | AC | 1 ms | 3744 KiB |
| test_21.txt | AC | 1 ms | 3804 KiB |
| test_22.txt | AC | 1 ms | 3632 KiB |
| test_23.txt | AC | 1 ms | 3872 KiB |
| test_24.txt | AC | 1 ms | 3632 KiB |
| test_25.txt | AC | 1 ms | 3744 KiB |
| test_26.txt | AC | 1 ms | 3596 KiB |
| test_27.txt | AC | 1 ms | 3764 KiB |
| test_28.txt | AC | 1 ms | 3744 KiB |
| test_29.txt | WA | 1 ms | 3640 KiB |
| test_30.txt | AC | 1 ms | 3600 KiB |
| test_31.txt | AC | 1 ms | 3804 KiB |
| test_32.txt | WA | 1 ms | 3680 KiB |
| test_33.txt | WA | 1 ms | 3756 KiB |
| test_34.txt | AC | 1 ms | 3624 KiB |
| test_35.txt | AC | 1 ms | 3604 KiB |
| test_36.txt | AC | 1 ms | 3624 KiB |
| test_37.txt | AC | 1 ms | 3856 KiB |
| test_38.txt | AC | 1 ms | 3804 KiB |
| test_39.txt | AC | 1 ms | 3808 KiB |
| test_40.txt | AC | 1 ms | 3668 KiB |
| test_41.txt | AC | 1 ms | 3732 KiB |
| test_42.txt | AC | 1 ms | 3820 KiB |
| test_43.txt | AC | 1 ms | 3672 KiB |
| test_44.txt | AC | 1 ms | 3656 KiB |
| test_45.txt | AC | 1 ms | 3608 KiB |
| test_46.txt | AC | 1 ms | 3744 KiB |
| test_47.txt | AC | 1 ms | 3736 KiB |
| test_48.txt | AC | 1 ms | 3668 KiB |
| test_49.txt | WA | 1 ms | 3652 KiB |
| test_50.txt | AC | 1 ms | 3800 KiB |
| test_51.txt | AC | 1 ms | 3864 KiB |
| test_52.txt | WA | 1 ms | 3760 KiB |
| test_53.txt | AC | 1 ms | 3668 KiB |
| test_54.txt | AC | 1 ms | 3672 KiB |
| test_55.txt | WA | 1 ms | 3504 KiB |
| test_56.txt | WA | 1 ms | 3776 KiB |
| test_57.txt | AC | 1 ms | 3624 KiB |
| test_58.txt | WA | 1 ms | 3680 KiB |
| test_59.txt | WA | 1 ms | 3760 KiB |
| test_60.txt | AC | 1 ms | 3744 KiB |
| test_61.txt | AC | 1 ms | 3828 KiB |
| test_62.txt | AC | 1 ms | 3736 KiB |
| test_63.txt | AC | 1 ms | 3680 KiB |
| test_64.txt | AC | 1 ms | 3816 KiB |
| test_65.txt | AC | 1 ms | 3836 KiB |
| test_66.txt | AC | 1 ms | 3660 KiB |
| test_67.txt | AC | 1 ms | 3824 KiB |
| test_68.txt | AC | 1 ms | 3848 KiB |
| test_69.txt | AC | 1 ms | 3632 KiB |
| test_70.txt | AC | 1 ms | 3612 KiB |
| test_71.txt | AC | 1 ms | 3808 KiB |
| test_72.txt | AC | 1 ms | 3860 KiB |
| test_73.txt | AC | 1 ms | 3860 KiB |
| test_74.txt | AC | 1 ms | 3744 KiB |
| test_75.txt | AC | 1 ms | 3592 KiB |
| test_76.txt | AC | 1 ms | 3864 KiB |
| test_77.txt | AC | 1 ms | 3812 KiB |
| test_78.txt | AC | 1 ms | 3672 KiB |
| test_79.txt | AC | 1 ms | 3816 KiB |
| test_80.txt | AC | 1 ms | 3744 KiB |
| test_81.txt | AC | 1 ms | 3668 KiB |
| test_82.txt | AC | 1 ms | 3624 KiB |
| test_83.txt | AC | 1 ms | 3744 KiB |
| test_84.txt | AC | 1 ms | 3656 KiB |
| test_85.txt | AC | 1 ms | 3820 KiB |
| test_86.txt | AC | 1 ms | 3744 KiB |
| test_87.txt | AC | 1 ms | 3672 KiB |
| test_88.txt | AC | 1 ms | 3808 KiB |
| test_89.txt | AC | 1 ms | 3740 KiB |
| test_90.txt | AC | 1 ms | 3864 KiB |
| test_91.txt | AC | 1 ms | 3656 KiB |
| test_92.txt | AC | 1 ms | 3604 KiB |