Submission #170370

#TimeUsernameProblemLanguageResultExecution timeMemory
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]; }

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 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...