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 ...
随机推荐
- MediaInfo代码阅读
MediaInfo是一个用来分析媒体文件的开源工具. 支持的文件非常全面,基本上支持所有的媒体文件. 最近是在做HEVC开发,所以比较关注MediaInfo中关于HEVC的分析与处理. 从Meid ...
- JAVA调用外部安装7-Zip压缩和解压zip文件
1.首先在本地安装7-Zip(下载链接:https://www.7-zip.org/)2.调用7-Zip压缩.zip文件: /** * 生成.zip压缩文件 * @param fi ...
- tmux终端工具的简单使用
Linux上管理和运行进程除了程序级别的守护进程之外,经常用到的有比如nohup &的方式,以及screen会话的方式,而Tmux正是一个非常优秀的终端进程管理的软件,和GNU screen类 ...
- SSE图像算法优化系列二十二:优化龚元浩博士的曲率滤波算法,达到约1000 MPixels/Sec的单次迭代速度
2015年龚博士的曲率滤波算法刚出来的时候,在图像处理界也曾引起不小的轰动,特别是其所说的算法的简洁性,以及算法的效果.执行效率等方面较其他算法均有一定的优势,我在该算法刚出来时也曾经有关注,不过 ...
- mysql分组用法
--select num from 表 group by num --select num from 表 group by num,nid --特别的:group by 必须在where之后,orde ...
- PDO::__construct(): Server sent charset (255) unknown to the client. Please, report to the developers
微擎出错信息: Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2054] Server s ...
- Atitit 文员招募规范 attilax总结
Atitit 文员招募规范 attilax总结 1. 概念 2 2. 文员招募范文 2 3. 重大意义 3 3.1. 第一层 文章撰写 能力 3 3.2. 第二次 文档管理能力 文档索引 检索查找 ...
- docker下创建crontab定时任务失败
创建过程 基础镜像采用的centos7.2,需要安装一下crontab,在dockerfile中加以下语句就可以了: # crontab jobs RUN yum -y install crontab ...
- 力导向图Demo
<html> <head> <meta charset="utf-8"> <title>力导向图</title> < ...
- Hadoop 2.2.0安装和配置lzo
转自:http://www.iteblog.com/archives/992 Hadoop经常用于处理大量的数据,如果期间的输出数据.中间数据能压缩存储,对系统的I/O性能会有提升.综合考虑压缩.解压 ...