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;
const long long mod=998244353;
int n,a[500005],sum[500005];
vector<int>b[1000005];
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
//freopen("lemonade.in","r",stdin);
//freopen("lemonade.out","w",stdout);
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
if(i==a[i])sum[i]++;
sum[i]+=sum[i-1];
}
for(int i=1;i<=n;i++)b[i+a[i]].push_back(abs(a[i]-i));
int mx=0,a1=1,b1=1;
for(int i=2;i<=n*2;i++)
{
sort(b[i].begin(),b[i].end());
int cnt=0;
for(int j=0;j<b[i].size();j++)
{
cnt++;
int con=i,dis=b[i][j];
int l=(con-dis)/2,r=(con+dis)/2;
int ans=cnt-(sum[r]-sum[l-1]);
if(mx<ans)
{
mx=ans;
a1=l;
b1=r;
}
}
}
cout<<a[a1]<<' '<<a[b1];
}
Compilation message (stderr)
doktor.cpp: In function 'int main()':
doktor.cpp:26:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j=0;j<b[i].size();j++)
~^~~~~~~~~~~~
# | 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... |