有没有佬可以解答一下K题为什么要开3e5的空间啊,我感觉5e5就够但是过不了TAT
```#include<bits/stdc++.h>
using namespace std;
#define endl "\n"
#define ll long long
#define int long long
#define fi first
#define se second
const int N=6e5+10;
const ll mod=998244353;
int num[N];
int a[N],s[N];//a 存储坐标插入的值 s 存储数组a的前缀和
vector<int> alls; //存储(所有与插入和查询有关的)坐标
vector<pair<int, int> > add, query; //存储插入和询问操作的数据
int find(int x) { //返回的是输入的坐标的离散化下标
int l = 0, r = alls.size() - 1;
while (l < r) {
int mid = l + r >> 1;
if (alls[mid] >= x) r = mid;
else l = mid + 1;
}
return r + 1;
}
void solve() {
int n,m;cin>>n>>m;
for(int i=1;i<=n;i++){
int l,r,a;cin>>l>>r>>a;
add.push_back({l, a});
add.push_back({r+1, -a});
alls.push_back(l);alls.push_back(r+1);
}
for(int i=1;i<=m;i++){
cin>>num[i];
alls.push_back(num[i]);
}
sort(alls.begin(), alls.end()); //排序,去重
alls.erase(unique(alls.begin(), alls.end()), alls.end());
for (auto item : add) { //执行前n次插入操作
int x = find(item.first);
a[x] += item.second;
}
for (int i = 1; i <= alls.size(); i++) s[i] = s[i-1] + a[i]; //前缀和
for(int i=1;i<=m;i++){
cout<<s[find(num[i])]<<endl;
}
}
signed main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int _=1;
while(_--) {
solve();
}
}