Submission #82223

#TimeUsernameProblemLanguageResultExecution timeMemory
82223thiago4532Doktor (COCI17_doktor)C++17
100 / 100
297 ms48184 KiB
#include <bits/stdc++.h> using namespace std; const int maxn = 2*500010; int v[maxn], pref[maxn], n; vector<int> c[maxn]; inline int qq(int a, int b){ return pref[b] - pref[a-1]; } int main(){ ios::sync_with_stdio(false), cin.tie(0); cin >> n; for(int i=1;i<=n;i++){ cin >> v[i<<1]; v[i<<1] *= 2; int centro = (v[(i<<1)] + (i<<1))/2; c[centro].push_back(abs(centro - (i<<1))); } for(int i=1;i<=n;i++) if(v[i<<1] == (i<<1)) pref[i<<1] = 1; for(int i=1;i<=2*n;i++) pref[i] += pref[i-1]; int ans=0, a, b; for(int i=1;i<=2*n;i++){ sort(c[i].begin(), c[i].end()); for(int j=0;j<c[i].size();j++){ int qtd = j + 1 - qq(i-c[i][j], i+c[i][j]) + (!(i&1) && v[i] == i); if(qtd > ans){ ans = qtd; a = i-c[i][j]; b = i+c[i][j]; } } } cout << v[a]/2 << " " << v[b]/2 << "\n"; return 0; }

Compilation message (stderr)

doktor.cpp: In function 'int main()':
doktor.cpp:32:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int j=0;j<c[i].size();j++){
               ~^~~~~~~~~~~~
doktor.cpp:43:30: warning: 'b' may be used uninitialized in this function [-Wmaybe-uninitialized]
  cout << v[a]/2 << " " << v[b]/2 << "\n";
                           ~~~^
doktor.cpp:43:13: warning: 'a' may be used uninitialized in this function [-Wmaybe-uninitialized]
  cout << v[a]/2 << " " << v[b]/2 << "\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...