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...