当前位置: 首页 > news >正文

熊大熊二与糖果2

题目描述

桌子上从左到右放着 nn 个糖果。糖果从左到右编号。第 ii 颗糖果的重量为 wiwi​。熊大和熊二吃糖果。

熊大可以从左边吃任意数量的糖果(他必须连着吃,不能跳过糖果)。

熊二可以从右边吃任意数量的糖果(他必须连着吃,不能跳过糖果)。

作为好兄弟,他们希望公平,即目标是吃同样重量的糖果。他们总共最多能吃多少个糖果?

输入格式

第一行包含整数 t(1≤t≤104)t(1≤t≤104),表示测试用例数。

每个测试用例的第一行包含一个整数 n(1≤n≤2×105)n(1≤n≤2×105),表示桌上糖果的数量。

每个测试用例的第二行包含 nn 个整数 w1,w2,…,wn(1≤wi≤104)w1​,w2​,…,wn​(1≤wi​≤104),表示从左到右的糖果重量。

保证所有测试用例的 nn 之和不超过 2×1052×105。

输出格式

对于每个测试用例,输出一个整数,熊大和熊二在满足条件的情况下总共可以吃的糖果的最大数量。

测试样例

输入数据 1

4
3
10 20 10
6
2 1 4 2 4 1
5
1 2 4 8 16
9
7 3 20 5 15 1 11 8 10

输出数据 1

2
6
0
7

样例说明

对于第一个测试用例,熊大将从左边吃一颗糖果,熊二将从右边吃一颗。没有更好的方法来吃到同样的重量。答案是 22,因为他们总共吃了两颗糖。

对于第二个测试用例,熊大将吃左边的前三颗糖果(总重量 77),熊二将吃右边的前三粒糖果(总重量 77)。他们不能吃更多的糖果,因为所有的糖果都吃过了,所以答案是 66(因为他们总共吃了六颗糖果)。

对于第三个测试用例,熊大和熊二不可能吃相同的重量,因此答案为 00。

对于第四个测试案例,熊大将吃重量为 [7,3,20][7,3,20] 的糖果,熊二将吃重量 [10,8,11,1][10,8,11,1] 的糖果,他们每人吃 3030 的重量。没有更好的方案,所以答案是 77。

代码示例

#include <iostream>
#include <algorithm>
#include <string>
using namespace std;bool inc(int x, int y)
{return x > y;
}
struct xq
{string arr;
};
int sreach(int arr[], int num, int len)
{int left = 1;int right = len;while (left + 1 < right){int mid = (left + right) / 2;if (arr[mid] <= num){left = mid;}else{right = mid;}}return left;
}
int main()
{int t = 0;cin >> t;for (int o = 0; o < t; o++){int n = 0;cin >> n;int arr[200001];for (int i = 1; i <= n; i++){cin >> arr[i];}int lsum[200001] = {0};int rsum[200001] = {0};for (int i = 1; i <= n; i++){lsum[i] = arr[i] + lsum[i - 1];}for (int i = n; i > 0; i--){rsum[i] = arr[i] + rsum[i + 1];}sort(lsum + 1, lsum + n + 1);sort(rsum + 1, rsum + n + 1);int shu[200001] = { 0 };int index = 0;for (int i = 1; i <= n; i++){int pos = sreach(rsum, lsum[i], n + 1);if (rsum[pos] != lsum[i]){continue;}if (pos + i <= n){shu[index++] = pos + i;}}sort(shu, shu + index, inc);cout << shu[0] << endl;}return 0;
}


文章转载自:

http://XhDxt8km.jfxth.cn
http://Jd1CHoCe.jfxth.cn
http://9EQFdLYv.jfxth.cn
http://ejpzD8Jt.jfxth.cn
http://SNMOo9V8.jfxth.cn
http://Sa4ENdXB.jfxth.cn
http://4JvaIV9e.jfxth.cn
http://sWhcR3uy.jfxth.cn
http://OLUXNZa7.jfxth.cn
http://TFL39ZDB.jfxth.cn
http://8OsQjyRT.jfxth.cn
http://lTyRQzhz.jfxth.cn
http://SEhdqSbe.jfxth.cn
http://zJVsCzgJ.jfxth.cn
http://paj8qmtT.jfxth.cn
http://UybpHNid.jfxth.cn
http://Xct8lAeN.jfxth.cn
http://dK5BiyXc.jfxth.cn
http://ooAaZcWU.jfxth.cn
http://GNTAQmQj.jfxth.cn
http://3JDqHzJA.jfxth.cn
http://99MmnIaC.jfxth.cn
http://1xLOwaSQ.jfxth.cn
http://LDfl8vzu.jfxth.cn
http://1icuG1Pi.jfxth.cn
http://Zi7SWHKF.jfxth.cn
http://oQxWeRqT.jfxth.cn
http://40S4EVkt.jfxth.cn
http://Ifqp7u7H.jfxth.cn
http://mi1RT28S.jfxth.cn
http://www.dtcms.com/a/375168.html

相关文章:

  • 元宇宙与零售业变革:沉浸式体验重构消费全链路
  • 运筹学——对偶单纯形法,目标函数系数的敏感性分析
  • 考研复习-计算机网络-第四章-网络层
  • 《UE5_C++多人TPS完整教程》学习笔记49 ——《P50 应用瞄准偏移(Applying Aim Offset)》
  • 微信小程序罗盘功能开发指南
  • 【C++进阶】---- map和set的使用
  • [差分数组]2327. 知道秘密的人数
  • 微调Qwen2.5模型的完整指南
  • SpringBoot之日志处理(logback和AOP记录操作日志)
  • DTO简单讲解
  • ERP和MES、WMS、CRM,到底怎么配合?
  • 【实战中提升自己】总部项目实施全方面总结
  • MS9127S USB投屏控制芯片(LVDS输出)
  • rook-ceph的osd块存储权重数据迁移脚本
  • 少儿编程C++快速教程之——3. 数组和矩阵操作
  • 【Kubernetes知识点】CRD客户资源定义及Gateway
  • 移动开发 - Uni-app跨端跨平台开发 - 学习/实践
  • 物联网时序数据管理的利器:为何IoTDB备受青睐?
  • 意识智能体:大模型的下一个进化方向?
  • 探索大模型的前沿:从GPT到LLAMA,看看AI如何改变世界
  • 西门子 S7-200 SMART 核心指令(布尔指令、传送指令、数学运算指令和比较指令)详解
  • llama-stack实战:Python构建Llama应用的可组合开发框架(8k星)
  • App Store 软件上架全流程详解,iOS 应用发布步骤、uni-app 打包上传与审核要点完整指南
  • Linux系统命令行git的使用
  • Ubuntu服务器安装fish-speech本地语音部署教程
  • Tomcat的基础使用
  • 无人机电压模块技术剖析
  • 无人机图传通信模组——16公里抗干扰稳定传输的高性能解决方案
  • 高效 P2P 文件传输工具:FileSync 利用 WebRTC 技术实现极速安全传输
  • UOS20系统安装与 SSH/XRDP 远程访问功能配置指南