Submission #82235

#TimeUsernameProblemLanguageResultExecution timeMemory
82235Leonardo_PaesDoktor (COCI17_doktor)C++11
60 / 100
39 ms1212 KiB
#include <bits/stdc++.h> using namespace std; #define MAXN 100100 int vet[MAXN], pos[MAXN], ans[MAXN], pre[MAXN]; pair<int,int> ans2[MAXN]; int main(){ int n; cin >> n; for(int i=1; i<=n; i++){ cin >> vet[i]; pos[vet[i]]=i; } if(n>5000){ cout << 1 << " " << 1 << endl; return 0; } for(int i=1; i<=n; i++){ if(vet[i]==i){ pre[i]++; } pre[i]+=pre[i-1]; //cout << pre[i] << " "; } for(int i=1; i<=n; i++){ if(pos[i] == i){ ans[i] = pre[n]; ans2[i] = {i,i}; } if(pos[i] < i){ int atual = 0; for(int x = pos[i], u=0; x<=i; x++, u++){ if(vet[x]+u==vet[pos[i]]){ atual++; } } ans2[i] = {i, vet[i]}; ans[i]=atual; // antes ans[i]+=pre[pos[i]-1]; //depois ans[i]+=pre[n]-pre[i]; } if(pos[i] > i){ int atual = 0; for(int x = pos[i], u=0; x>=i; x--, u++){ if(vet[x]-u==vet[pos[i]]){ atual++; } } ans2[i] = {vet[i], i}; ans[i]=atual; //antes ans[i]+=pre[i-1]; //depois ans[i]+=pre[n]-pre[pos[i]]; } } int resp = 1; int idx; for(int i=1; i<=n; i++){ if(ans[i]>resp){ resp=ans[i]; idx = i; } } cout << ans2[idx].first << " " << ans2[idx].second << endl; }

Compilation message (stderr)

doktor.cpp: In function 'int main()':
doktor.cpp:77:49: warning: 'idx' may be used uninitialized in this function [-Wmaybe-uninitialized]
     cout << ans2[idx].first << " " << ans2[idx].second << endl;
                                                 ^~~~~~
#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...