CF1132B Discounts 题解
2024-09-08 15:39:58
Content
有一个长度为 \(n\) 的数组 \(a_1,a_2,a_3,...,a_n\)。有 \(q\) 次询问,每次询问给定一个数 \(x\)。对于每次询问,求出数组中去掉一个第 \(x\) 大的数字后数组内剩余的数字的总和。
数据范围:\(2\leqslant n\leqslant 3\times 10^5,1\leqslant a_i\leqslant 10^9,1\leqslant m<n,2\leqslant q_i\leqslant n\)。
Solution
预处理出所有数的总和,直接排序之后每次询问就可以直接输出总和减去第 \(x\) 大的数后的值了,就是我们要求的剩余的数字的总和。
Code
int n, a[300007], q;
ll sum;
bool cmp(int a, int b) {
return a > b;
}
int main() {
getint(n);
_for(i, 1, n) {getint(a[i]); sum += a[i];}
sort(a + 1, a + n + 1, cmp);
getint(q);
while(q--) {
int x;
getint(x);
ll ans = sum - a[x];
writell(ans), putchar('\n');
}
return 0;
}
最新文章
- artDialog 配置参数
- Python 获得对象内存占用内存大小 sys.getsizeof
- NYOJ题目822画图
- 源码搭建SVN+Apache+Setpass
- mysql net连接读取结果为乱码 Incorrect string value
- children真的没有兼容性问题吗?
- 数据库:JDBC编程
- Sqlserver 链接服务器和同义词
- JQuery的deferred对象学习总结
- Vue探索历程(一)
- gradle.properties使用
- Pandas 基础(13) - Crosstab 交叉列表取值
- 前端生成excel
- python之路--FTP 上传视频示例
- 通过GitHub和GoDaddy搭建静态个人博客
- Linux 进程间通讯
- docker能用来干嘛
- 6、使用jconsole+VisualVM分析JVM
- Linux驱动技术(五) _设备阻塞/非阻塞读写【转】
- win7基于mahout推荐之用户相似度计算