CF1697B题解
wyyxhlxy513 · · 题解
这是排序过的价格们。
a1 a2 a3 a4 a5 a6 a7 …… an
这道题让我们求出后
a1 a2 a3 a4 a5 a6 a7 …… an
{ 后x项 }
{前y项之和}
我们可以用
a1 a2 a3 a4 a5 a6 a7 …… an
{ 答案 }
{ A }
{ B }
先用
#include<bits/stdc++.h>
using namespace std;
long long p[200005],ans[200005];
bool cmp(int x,int y)
{
return x > y;
}
int main()
{
int n,k;
cin >> n >> q;//读入
for(int i = 1;i <= n;i ++)
{
cin >> p[i];
}
sort(p + 1,p + n + 1);
for(int i = 1;i <= n;i ++)
{
ans[i] = p[i] + ans[i - 1];//这一步是为了算出前y个的和
}
while(q --)//循环
{
int x,y;
cin << x >> y;
cout << ans[n - x + y] - ans[n - x] << "\n";//注意换行
}
return 0;
}
2022.07.14 修改一个小错误