Submission #131517

#TimeUsernameProblemLanguageResultExecution timeMemory
131517sebinkimBodyguards (CEOI10_bodyguards)C++14
100 / 100
158 ms7160 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair <ll, ll> pll; pll A[202020], B[202020]; ll n, m; void die() { printf("0\n"); exit(0); } int main() { ll i, j, s1, s2; scanf("%lld", &n); for(i=1; i<=n; i++){ scanf("%lld%lld", &A[i].first, &A[i].second); } sort(A + 1, A + n + 1); for(i=n; i>=1; i--){ A[i].second += A[i + 1].second; } scanf("%lld", &m); for(i=1; i<=m; i++){ scanf("%lld%lld", &B[i].first, &B[i].second); } sort(B + 1, B + m + 1); reverse(B + 1, B + m + 1); for(i=1; i<=m; i++){ B[i].second += B[i - 1].first; swap(B[i].first, B[i].second); } for(i=1, j=1, s1=0, s2=0; i<=n; i++){ for(; j<=m && B[j].first <= A[i].first; j++){ s2 += (B[j].first - B[j - 1].first) * B[j].second; if(s1 + (B[j].first - A[i - 1].first) * A[i].second < s2) die(); } s1 += (A[i].first - A[i - 1].first) * A[i].second; if(s1 < s2 + (A[i].first - B[j - 1].first) * B[j].second) die(); } printf("1\n"); return 0; }

Compilation message (stderr)

bodyguards.cpp: In function 'int main()':
bodyguards.cpp:17:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%lld", &n);
  ~~~~~^~~~~~~~~~~~
bodyguards.cpp:20:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%lld%lld", &A[i].first, &A[i].second);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bodyguards.cpp:29:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%lld", &m);
  ~~~~~^~~~~~~~~~~~
bodyguards.cpp:32:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%lld%lld", &B[i].first, &B[i].second);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...