이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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];
}
컴파일 시 표준 에러 (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... |