This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl "\n"
map<pair<int,int>,int>idk;
main()
{
int n;
cin>>n;
int ar[n];
int doingnothing=0;
for(int i=0;i<n;i++)
{
cin>>ar[i];
if(ar[i]==i+1)doingnothing++;
int x = min(ar[i]-1,i);
int y = max(ar[i]-1,i);
int dist = min(x - 0 , n - y-1);
//cout<<x-dist<<" "<<y+dist<<endl;
idk[{ x-dist , y+dist }]++;
}
int x = 0;
pair<int,int>ans;
for(auto v:idk)
{
if(v.second>=x)
{
x = v.second;
ans = v.first;
}
}
x=0;
int i=ans.first,j=ans.second;
ans.first = ar[ans.first];
ans.second = ar[ans.second];
while(i<j)
{
swap(ar[i],ar[j]);
i++;
j--;
}
for(int i=0;i<n;i++)if(ar[i]==i+1)x++;
if(x>doingnothing)cout<<ans.first<<" "<<ans.second<<endl;
else cout<<"1 1"<<endl;
}
Compilation message (stderr)
doktor.cpp:8:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
8 | main()
| ^~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |