Submission #120025

#TimeUsernameProblemLanguageResultExecution timeMemory
120025E869120Hacker (BOI15_hac)C++14
100 / 100
233 ms22412 KiB
#include <iostream> #include <algorithm> using namespace std; #pragma warning (disable: 4996) long long N, A[1 << 20], C[1 << 20], T[1 << 20]; bool solve(long long pos) { for (int i = 0; i <= N * 2; i++) T[i] = 0; for (int i = 0; i < N; i++) { long long E = C[i + (N + 1) / 2] - C[i]; if (E >= pos) { T[i + 1] = 1; T[i + 1 + N] = 1;} } for (int i = 1; i <= 2 * N; i++) T[i] += T[i - 1]; for (int i = 0; i < N; i++) { if (T[i + (N + 1) / 2] - T[i] == (N + 1) / 2) return true; } return false; } int main() { scanf("%lld", &N); for (int i = 1; i <= N; i++) { scanf("%lld", &A[i]); C[i] = A[i]; C[i + N] = C[i]; } for (int i = 1; i <= N * 2; i++) C[i] += C[i - 1]; long long cl = 0, cr = (1LL << 30), cm, maxn = -(1LL << 30); for (int i = 0; i < 33; i++) { cm = (cl + cr) / 2; bool I = solve(cm); if (I == true) { cl = cm; maxn = max(maxn, cm); } else { cr = cm; } } cout << maxn << endl; return 0; }

Compilation message (stderr)

hac.cpp:4:0: warning: ignoring #pragma warning  [-Wunknown-pragmas]
 #pragma warning (disable: 4996)
 
hac.cpp: In function 'int main()':
hac.cpp:23:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%lld", &N);
  ~~~~~^~~~~~~~~~~~
hac.cpp:24:38: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  for (int i = 1; i <= N; i++) { scanf("%lld", &A[i]); C[i] = A[i]; C[i + N] = C[i]; }
                                 ~~~~~^~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...