Submission #290449

#TimeUsernameProblemLanguageResultExecution timeMemory
290449luciocfBigger segments (IZhO19_segments)C++14
0 / 100
0 ms256 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 5e5+10; int n; int a[maxn]; int qtd(int p) { ll ant = 0; for (int i = 1; i <= p; i++) ant += 1ll*a[i]; int at = p; int ans = 1; while (at < n) { ++ans; ll aux = 0; int i; for (i = at+1; i <= n; i++) { aux += 1ll*a[i]; if (aux >= ant) break; } if (i > n) return -1; at = i; ant = aux; } return ans; } int main(void) { scanf("%d", &n); ll soma = 0; for (int i = 1; i <= n; i++) { scanf("%d", &a[i]); soma += 1ll*a[i]; } int ini = 1, fim = 1, ans = 1; ll aux = 0; for (int i = n; i >= 1; i--) { aux += 1ll*a[i]; if (soma-aux <= aux) { fim = i; break; } } while (ini <= fim) { int mid = (ini+fim)>>1; if (qtd(mid) != -1) fim = mid-1, ans = qtd(mid); else ini = mid+1; } printf("%d\n", ans); }

Compilation message (stderr)

segments.cpp: In function 'int main()':
segments.cpp:46:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   46 |  scanf("%d", &n);
      |  ~~~~~^~~~~~~~~~
segments.cpp:52:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   52 |   scanf("%d", &a[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...
#Verdict Execution timeMemoryGrader output
Fetching results...