Submission #553701

#TimeUsernameProblemLanguageResultExecution timeMemory
553701QwertyPiFortune Telling 2 (JOI14_fortune_telling2)C++14
4 / 100
3061 ms1756 KiB
#include <bits/stdc++.h>

using namespace std;

const int N = 1e5+3;
int A[N], B[N], C[N];
int x1[N], x2[N], pa[N];
struct BIT{
	int bit[N];
	void upd(int p, int v){
		for(int i = p; i < N; i += i & -i){
			bit[i] += v;
		}
	}
	int qry(int p){
		int ret = 0;
		for(int i = p; i; i -= i & -i){
			ret += bit[i];
		}
		return ret;
	}
} bit0, bit1;

int32_t main(){
	int n, k;
	cin >> n >> k;
	for(int i = 0; i < n; i++){
		cin >> A[i] >> B[i];
		x1[i] = min(A[i], B[i]);
		x2[i] = max(A[i], B[i]);
		pa[i] = x1[i] != A[i];
	}
	for(int i = 0; i < k; i++){
		cin >> C[i];
	}
	// A[i] <= C[i] < B[i]
	long long ans = 0;
	for(int i = 0; i < n; i++){
		for(int j = 0; j < k; j++){
			if(x1[i] <= C[j] && C[j] < x2[i]){
				pa[i] = true;
			}else if(x2[i] <= C[j]){
				pa[i] ^= 1;
			}
		}
		ans += pa[i] ? x2[i] : x1[i];
	}
	cout << ans << endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...