Submission #951488

#TimeUsernameProblemLanguageResultExecution timeMemory
951488SmuggingSpunSequence (APIO23_sequence)C++17
28 / 100
2097 ms9556 KiB
#include<bits/stdc++.h> using namespace std; int sequence(int n, vector<int>a){ vector<int>bit(n + 1); function<void(int)>update = [&] (int p){ for(; p <= n; p += p & -p){ bit[p]++; } }; function<int(int)>get = [&] (int p){ int ans = 0; for(; p > 0; p -= p & -p){ ans += bit[p]; } return ans; }; function<void(int&, int)>maximize = [&] (int& a, int b){ if(a < b){ a = b; } }; int ans = 0; for(int i = 0; i < n; i++){ fill(bit.begin(), bit.end(), 0); for(int j = i; j < n; j++){ update(a[j]); int low = 1, high = n, x = j - i + 1, median; while(low <= high){ int mid = (low + high) >> 1; if(get(mid) >= (x >> 1) + (x & 1)){ high = (median = mid) - 1; } else{ low = mid + 1; } } maximize(ans, get(median) - get(median - 1)); if((~x & 1) && get(median) == (x >> 1)){ low = median + 1; high = n; while(low <= high){ int mid = (low + high) >> 1; if(get(mid) > (x >> 1)){ high = (median = mid) - 1; } else{ low = mid + 1; } } maximize(ans, get(median) - get(median - 1)); } } } return ans; }

Compilation message (stderr)

sequence.cpp: In function 'int sequence(int, std::vector<int>)':
sequence.cpp:39:9: warning: 'median' may be used uninitialized in this function [-Wmaybe-uninitialized]
   39 |     low = median + 1;
      |     ~~~~^~~~~~~~~~~~
#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...