Submission #82243

#TimeUsernameProblemLanguageResultExecution timeMemory
82243Leonardo_PaesDoktor (COCI17_doktor)C++11
60 / 100
1079 ms4476 KiB
#include <bits/stdc++.h> using namespace std; const int maxn = 5e5+100; int num[maxn], soma[maxn], n; int main(void) { ios::sync_with_stdio(false); cin.tie(0); cin >> n; for (int i = 1; i <= n; i++) { cin >> num[i]; if (num[i] == i) soma[i] = soma[i-1]+1; else soma[i] = soma[i-1]; } int ans = 0, ind1 = num[1], ind2 = num[2]; for (int i = 1; i <= n; i++) { if (num[i] < i) continue; int aux = soma[i-1]+soma[n]-soma[num[i]]; for (int j = i; j <= num[i]; j++) if (num[j]+j == num[i]+i) aux++; if (aux > ans) { ans = aux; ind1 = num[i], ind2 = num[num[i]]; } } for (int i = 1; i <= n; i++) { if (num[i] > i) continue; int aux = soma[n]-soma[i]+soma[num[i]-1]; for (int j = num[i]; j <= i; j++) if (num[j]+j == num[i]+i) aux++; if (aux > ans) { ans = aux; ind1 = num[num[i]], ind2 = num[i]; } } cout << ind1 << " " << ind2 << "\n"; }
#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...