Submission #170714

#TimeUsernameProblemLanguageResultExecution timeMemory
170714isvaraXCorr (KOI18_XCorr)C++14
100 / 100
172 ms18552 KiB
#include<iostream> #include<algorithm> #include<queue> #include<set> #include<map> #include<vector> #include<string.h> #include<math.h> #include<stack> #include<assert.h> using namespace std; typedef long long ll; const int max_n =1e5+1; int N, M; ll ans; vector<ll>arr, aidx, bidx, sum; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> N; arr.resize(N), aidx.resize(N); for (int i = 0; i < N; i++) { ll idx, val; cin >> idx >> val; arr[i] = val; aidx[i] = idx; } cin >> M; bidx.resize(M + 10), sum.resize(M + 10); for (int i = 0; i < M; i++) { ll idx, val; cin >> idx >> val; bidx[i] = idx; sum[i + 1] = sum[i] + val; } for (int i = M; i < M + 10; i++) bidx[i] = 1e18; int a, b; cin >> a >> b; for (int i = 0; i < N; i++) { int low=lower_bound(bidx.begin(), bidx.end(), a + aidx[i]) - bidx.begin(); int high = lower_bound(bidx.begin(), bidx.end(), b + aidx[i]+1) - bidx.begin(); ans += arr[i]*(sum[high] - sum[low]); } cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...