Tanya and Candies
1 second
256 megabytes
standard input
standard output
Tanya has nn candies numbered from 11 to nn . The ii -th candy has the weight aiai .
She plans to eat exactly n−1n−1 candies and give the remaining candy to her dad. Tanya eats candies in order of increasing their numbers, exactly one candy per day.
Your task is to find the number of such candies ii (let's call these candies good) that if dad gets the ii -th candy then the sum of weights of candies Tanya eats in even days will be equal to the sum of weights of candies Tanya eats in odd days. Note that at first, she will give the candy, after it she will eat the remaining candies one by one.
For example, n=4n=4 and weights are [1,4,3,3][1,4,3,3] . Consider all possible cases to give a candy to dad:
- Tanya gives the 11 -st candy to dad (a1=1a1=1 ), the remaining candies are [4,3,3][4,3,3] . She will eat a2=4a2=4 in the first day, a3=3a3=3 in the second day, a4=3a4=3 in the third day. So in odd days she will eat 4+3=74+3=7 and in even days she will eat 33 . Since 7≠37≠3 this case shouldn't be counted to the answer (this candy isn't good).
- Tanya gives the 22 -nd candy to dad (a2=4a2=4 ), the remaining candies are [1,3,3][1,3,3] . She will eat a1=1a1=1 in the first day, a3=3a3=3 in the second day, a4=3a4=3 in the third day. So in odd days she will eat 1+3=41+3=4 and in even days she will eat 33 . Since 4≠34≠3 this case shouldn't be counted to the answer (this candy isn't good).
- Tanya gives the 33 -rd candy to dad (a3=3a3=3 ), the remaining candies are [1,4,3][1,4,3] . She will eat a1=1a1=1 in the first day, a2=4a2=4 in the second day, a4=3a4=3 in the third day. So in odd days she will eat 1+3=41+3=4 and in even days she will eat 44 . Since 4=44=4 this case should be counted to the answer (this candy is good).
- Tanya gives the 44 -th candy to dad (a4=3a4=3 ), the remaining candies are [1,4,3][1,4,3] . She will eat a1=1a1=1 in the first day, a2=4a2=4 in the second day, a3=3a3=3 in the third day. So in odd days she will eat 1+3=41+3=4 and in even days she will eat 44 . Since 4=44=4 this case should be counted to the answer (this candy is good).
In total there 22 cases which should counted (these candies are good), so the answer is 22 .
The first line of the input contains one integer nn (1≤n≤2⋅1051≤n≤2⋅105 ) — the number of candies.
The second line of the input contains nn integers a1,a2,…,ana1,a2,…,an (1≤ai≤1041≤ai≤104 ), where aiai is the weight of the ii -th candy.
Print one integer — the number of such candies ii (good candies) that if dad gets the ii -th candy then the sum of weights of candies Tanya eats in even days will be equal to the sum of weights of candies Tanya eats in odd days.
7
5 5 4 5 5 5 6
2
8
4 8 8 7 8 4 4 5
2
9
2 3 4 2 2 3 2 2 4
3 Note
In the first example indices of good candies are [1,2][1,2].
In the second example indices of good candies are [2,3][2,3].
In the third example indices of good candies are [4,5,9][4,5,9].
分析:题目大意,给你一个序列,删去一个数值之后,要求剩下序列奇数和偶数的和相同,问有多少种删法。
对数列做前缀和,奇加偶减,遍历每个位置,检测除去当前位置,前半部分前缀和和后半部分前缀和是否相等
#include<iostream>
#include<cstring>
using namespace std; const int maxn = *1e5+;
int s[maxn];
int ans=; int main(int argc, char const *argv[])
{
int n;
cin>>n;
memset(s,,sizeof(s));
for( int i=; i<=n; i++ ){
int a;
cin>>a;
s[i]=s[i-]+(i&?a:-a);
} for( int i=; i<=n; i++ ){/*减去第i位置前半部分前缀和和后半部分前缀和是否相等*/
if(s[i-]==s[n]-s[i]) ans++;
}
cout<<ans<<endl;
return ;
}
Tanya and Candies的更多相关文章
- Codeforces Round #540 (Div. 3)--1118B - Tanya and Candies(easy TL!)
Tanya has nn candies numbered from 11 to nn. The ii-th candy has the weight aiai. She plans to eat e ...
- Codeforces Round #540 Tanya and Candies 预处理
http://codeforces.com/contest/1118/problem/B 题目大意,给你一个序列,删去一个数值之后,要求剩下序列奇数和偶数的和相同,问有多少种删法. 思路:预处理奇数和 ...
- Codeforces Round #540 (Div. 3) B. Tanya and Candies (后缀和)
题意:有\(n\)个数,你可以任意去除某个位置的元素然后得到一个新数组,使得新数组奇数位和偶数的元素相等,现在问你有多少种情况合法. 题解:先求个后缀和,然后遍历,记录奇数和偶数位置的前缀和,删去\( ...
- Codeforces Round #540 (Div. 3) A,B,C,D2,E,F1
A. Water Buying 链接:http://codeforces.com/contest/1118/problem/A 实现代码: #include<bits/stdc++.h> ...
- Codeforces Round #540 (Div. 3) 部分题解
Codeforces Round #540 (Div. 3) 题目链接:https://codeforces.com/contest/1118 题目太多啦,解释题意都花很多时间...还有事情要做,就选 ...
- CodeForces 518B. Tanya and Postcard
B. Tanya and Postcard time limit per test 2 seconds memory limit per test 256 megabytes input standa ...
- 【POJ2886】Who Gets the Most Candies?-线段树+反素数
Time Limit: 5000MS Memory Limit: 131072K Case Time Limit: 2000MS Description N children are sitting ...
- codeforces 518B. Tanya and Postcard 解题报告
题目链接:http://codeforces.com/problemset/problem/518/B 题目意思:给出字符串 s 和 t,如果 t 中有跟 s 完全相同的字母,数量等于或者多过 s,就 ...
- poj 3159 Candies 差分约束
Candies Time Limit: 1500MS Memory Limit: 131072K Total Submissions: 22177 Accepted: 5936 Descrip ...
随机推荐
- Taints 与 Tolerations
节点亲和性是描述Pods如何分配到一个或一组节点的策略,亲和性的相关资料可以参考Kubernetes中的亲和性与反亲和性.与亲和性规则不同, Taints 描述节点拒绝一个或一组Pods的策略.其实现 ...
- python 新手常见问题
1.python 三元运算符 无,用 if else 2.python 设置代码缩进 全选..然后按tab 3.记录程序运行时间 import time time_start=time.time() ...
- 配置带用户权限的docker registry v2
v1版本的docker registry用nginx配置,v2版本的用nginx有些问题,客户端总是会请求到v1/下面去, 以下从 http://blog.csdn.net/felix_yujing/ ...
- IDEA攻略合辑
AS使用lombok注解报错:Annotation processors must be explicitly declared now. The following dependencies on ...
- 关于bazel使用笔记
当我们在build一个文件时,需要另外的放置cache时,我们需要: bazel --output_user_root=/path/to/directory build //foo:bar
- idea 使用正则表达式 进行匹配替换
关于正则表达式 可以参考相应的笔记 另外 如果要提取正则表达式中匹配到的内容,使用$1 - $... 按顺序取(第一个表达式 到 第N个表达式匹配到的数据), 这点和linux正则获取的方式是一样的
- Git操作自动触发企业微信机器人webhook
[本文出自天外归云的博客园] 背景 在git做一些merge或push的操作,我们希望可以自动在企业微信群发送自定义的通知. 服务代码 这里选用php作为网络服务的开发语言,关键的代码如下(githo ...
- C# SMTP 邮件发送之QQ邮箱篇
邮件发送大家都已经非常熟悉了,微软自带的System.Net.Mail也很好用,那为什么还要说呢? QQ邮箱的SMTP以前是非SSL,用未加密的25端口,后来发送都改成SSL了,端口为465或587( ...
- Android 解析未知格式的json数据
1.递归一有的时候我们需要解析未知的json.或者说是动态的json.那么我们并不知道key具体是多少,或者说key不是固定的.这时候就需要解析动态key的方法. 这个方法是我在实现解析前台传入的js ...
- js 对象转&拼接
function pars(param, key, encode) { if (param == null) return ''; var arr = []; var t = typeof (para ...