fork download
  1. #include <bits/stdc++.h>
  2. #define C make_pair
  3. #define ll long long
  4. #define all(a) a.begin(),a.end()
  5. #define name "task"
  6. #define ln "\n"
  7. using namespace std;
  8. ll n;
  9. void solve(){
  10. cin>>n;
  11. ll a[n+5];
  12. vector<ll> b(n+5),a1;
  13. deque<ll> pos;
  14. a1.push_back(0);
  15. for(int i=1;i<=n;++i){
  16. cin>>a[i]; a1.push_back(a[i]);
  17. }
  18. for(int i=1;i<=n;++i)
  19. cin>>b[i];
  20. for(int i=1;i<=n;++i){
  21. if(a[i]!=b[i]){
  22. pos.push_back(i);
  23. }
  24. }
  25. sort(all(pos));
  26. sort(a+1LL*pos[0],a+1+1LL*pos[pos.size()-1]);
  27. map<ll,ll> mp;
  28. for(int i=pos[0];i<=pos[pos.size()-1];++i){
  29. ++mp[a[i]];
  30. }
  31. while(mp[a1[pos[0]-1]]!=0 && pos[0]-1>=1){
  32. pos.push_front(pos[0]-1);
  33. }
  34. while(mp[a1[pos[pos.size()-1]+1]] && pos[pos.size()-1]+1<=n){
  35. pos.push_back(pos[pos.size()-1]+1);
  36. }
  37. sort(all(pos));
  38. cout<<pos[0]<<" "<<pos[pos.size()-1];
  39. }
  40. int main(){
  41. ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
  42. if(fopen(name".inp","r")){
  43. freopen(name".inp","r",stdin);
  44. freopen(name".out","w",stdout);
  45. }
  46. solve();
  47. }
Success #stdin #stdout 0s 5296KB
stdin
5
4 2 3 2 1
4 2 2 3 1
stdout
2 4