Submission #521458

#TimeUsernameProblemLanguageResultExecution timeMemory
521458Rasoul006Doktor (COCI17_doktor)C++17
10 / 100
1091 ms9668 KiB
#include <bits/stdc++.h> #define endl "\n" typedef long long ll; using namespace std; const int N = 1e6+5; ll n , a[500009] , pre[500009] ; map < ll , ll > mp ; int main() { ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin >> n ; for(int i = 1 ; i <= n ; i++){ cin >> a[i] ; if(a[i] == i){ pre[i]++ ; } } for(int i = 1 ;i <= n ;i++){ pre[i] += pre[i-1] ; } ll mx = 0 ; pair < ll , ll > best = {0 , 0} ; for(ll i = 1 ; i <= n ; i++){ for(int j = i ; j <= n ; j++){ ll l = i , r = j ; ll q = pre[n] - (pre[l - 1] + (pre[n] - pre[r])) ; // cout << l << " " << r << " " ; // cout << pre[a[i] - 1] << " " << pre[n] - pre[r]<< endl ; while(r > l){ q += (a[r] == l) + (a[l] == r) ; l++ , r-- ; } if(l == r){ q += (a[r] == r) ; } if(q >= mx){ mx = q ; best = {j , i} ; } } } cout << best.first << " " << best.second ; return 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...