#include<bits/stdc++.h>#define int long longusingnamespace std;
constint N = 3e5 + 10;
typedef pair<int, int> PII;
int sum[N];
int n, m;
PII add[N], ask[N];
unordered_map<int, int> mmap;
vector<int>vec;
vector<int>::iterator unique(vector<int>& t){
int j = 0;
for (int i = 0; i < t.size(); ++i) {
if (!i || t[i] != t[i - 1]) t[j++] = t[i];
}
return t.begin() + j;
}
inlineintread(){
char ch = getchar();
int s = 0, f = 1;
for (;ch < '0' || ch > '9';ch = getchar()) if (ch = '-')f = -1;
for (;ch >= '0' && ch <= '9';ch = getchar()) s = (s << 3) + (s << 1) + (ch ^ 48);
return f == -1 ? -s : s;
}
signedmain(void){
n = read(), m = read();
for (int i = 1; i <= n;++i) {
int x, c;
x = read(), c = read();
add[i] = make_pair(x, c);
vec.push_back(x);
}
for (int i = 1; i <= m; ++i) {
int l, r;
l = read(), r = read();
ask[i] = make_pair(l, r);
vec.push_back(l), vec.push_back(r);
}
sort(vec.begin(), vec.end());
//vec.erase(unique(vec.begin(), vec.end()), vec.end()); STL中的unique
vec.erase(unique(vec), vec.end());
for (int i = 0; i < vec.size(); ++i) mmap[vec[i]] = i + 1;
for (int i = 1; i <= n; ++i) {
int idx = mmap[add[i].first];
sum[idx] += add[i].second;
}
for (int i = 1; i <= vec.size(); i++) {
sum[i] += sum[i - 1];
}
for (int i = 1; i <= m; ++i) {
int ll = mmap[ask[i].first], rr = mmap[ask[i].second];
cout << sum[rr] - sum[ll - 1] << endl;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix