제출 #170370

#제출 시각아이디문제언어결과실행 시간메모리
170370mdn2002Doktor (COCI17_doktor)C++14
100 / 100
235 ms45944 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...