Submission #82289

#TimeUsernameProblemLanguageResultExecution timeMemory
82289GenezioDoktor (COCI17_doktor)C++14
100 / 100
399 ms43048 KiB
#include<bits/stdc++.h> using namespace std; #define pii pair<int,int> #define mp make_pair #define F first #define S second #define pb push_back #define ll long long #define mid ((l+r)>>1) const int N = 500010; const int INF = 0x3f3f3f3f; const ll mod = 1e9+7; pii ans; int m; vector<int> e[2*N]; int v[N]; int pre[N]; //int pos[N]; /*int bs(vector<int> s,int l,int r,int val) { if(l==r) { return l; } if(s[mid]<val) { } }*/ int main() { //ios::sync_with_stdio(false); //cin.tie(0); int n,t=0; int ptfix=-1; cin>>n; if(n==1) { cin>>n; cout<<"1 1\n"; return 0; } for(int i=1;i<=n;i++) { cin>>v[i]; pre[i]=pre[i-1]; if(v[i]==i) ptfix=i,pre[i]++; e[v[i]+i].push_back(i); } for(int i=1;i<=n;i++) { vector<int>::iterator it = upper_bound(e[v[i]+i].begin(),e[v[i]+i].end(),max(v[i],i)); vector<int>::iterator hit = lower_bound(e[v[i]+i].begin(),e[v[i]+i].end(),min(v[i],i)-1); int a=it-hit; a-=(pre[max(v[i],i)]-pre[min(v[i],i)-1]); if(a>m) { m=a; if(v[i]>i) { ans.F=v[i]; ans.S=v[v[i]]; } else { ans.F=v[v[i]]; ans.S=v[i]; } } } if(m) { cout<<ans.F<<" "<<ans.S<<"\n"; } else { cout<<ptfix<<" "<<ptfix<<"\n"; } }

Compilation message (stderr)

doktor.cpp: In function 'int main()':
doktor.cpp:35:11: warning: unused variable 't' [-Wunused-variable]
     int n,t=0;
           ^
#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...