You've got array a[1], a[2], ..., a[n], consisting of
n integers. Count the number of ways to split all the elements of the array into three contiguous parts so that the sum of elements in each part is the same.

More formally, you need to find the number of such pairs of indices
i, j (2 ≤ i ≤ j ≤ n - 1), that
.

Input

The first line contains integer n
(1 ≤ n ≤ 5·105), showing how many numbers are in the array. The second line contains
n integers a[1],
a[2], ..., a[n]
(|a[i]| ≤  109) — the elements of array
a.

Output

Print a single integer — the number of ways to split the array into three parts with the same sum.

Sample test(s)
Input
5
1 2 3 0 3
Output
2
Input
4
0 1 -1 0
Output
1
Input
2
4 1
Output
0

思路:若平分分成若干种情况。应当总体(SUM)考虑,对SUM/3进行分析。它是区分3段的标准。

所以当部分和tmp==SUM/3,部分统计加一。

当tmp==sUM*2/3。则所有统计ans+=部分统计(s);

#include<iostream>
#include<cstring>
#include<cstdio>
#include<string>
#include<cmath>
#include<algorithm>
#define LL __int64
#define inf 0x3f3f3f3f
using namespace std;
LL a[1000000];
int main()
{
LL n,m,i,j,k;
LL b,t;
while(~scanf("%I64d",&n))
{
LL z=0;
for(i=0;i<n;i++)
{
scanf("%I64d",&a[i]);
z+=a[i];
}
if(z%3)
{
printf("0\n");
continue;
}
z/=3;
LL ans=0;LL s=0;LL tmp=0;
for(i=0;i<n-1;i++)//注意舍去最后以为数<span id="transmark"></span>
{
tmp+=a[i];
if(z*2==tmp)
{
ans+=s;
}
if(z==tmp)
{
s++;
}
}
printf("%I64d\n",ans);
}
return 0;
}

Codeforces Round #266 (Div. 2) C. Number of Ways的更多相关文章

  1. Codeforces Round #266 (Div. 2)

    http://codeforces.com/contest/466 噗,b没写出来啊.a写完后过了40分钟了啊,罚时4次啊!果然太弱 总结: a题看错题,没有考虑m>=n其实也是可行的,导致调了 ...

  2. Codeforces Round #266 (Div. 2) D

    D. Increase Sequence time limit per test 1 second memory limit per test 256 megabytes input standard ...

  3. Codeforces Round #266 (Div. 2)-C,D

    C - Number of Ways 直接暴力从前往后寻找.假设找到1/3sum的位置,那么标记++.找到2/3的位置,总数加上标记数. #include<stdio.h> #includ ...

  4. Codeforces Round #651 (Div. 2) C. Number Game(数论)

    题目链接:https://codeforces.com/contest/1370/problem/C 题意 给出一个正整数 $n$,Ashishgup 和 FastestFinger 依次选择执行以下 ...

  5. Codeforces Round #266 (Div.2) B Wonder Room --枚举

    题意:给出一个两边长为a,b的矩形,要求增加a和增加b使a*b>=6*n且a*b最小. 解法:设新的a,b为a1,b1,且设a<b,那么a<=a1<=ceil(sqrt(6*n ...

  6. Codeforces Round #266 (Div. 2)B(暴力枚举)

    很简单的暴力枚举,却卡了我那么长时间,可见我的基本功不够扎实. 两个数相乘等于一个数6*n,那么我枚举其中一个乘数就行了,而且枚举到sqrt(6*n)就行了,这个是暴力法解题中很常用的性质. 这道题找 ...

  7. Codeforces Round #674 (Div. 3) F. Number of Subsequences 题解(dp)

    题目链接 题目大意 给你一个长为d只包含字符'a','b','c','?' 的字符串,?可以变成a,b,c字符,假如有x个?字符,那么有\(3^x\)个字符串,求所有字符串种子序列包含多少个abc子序 ...

  8. Codeforces Round #686 (Div. 3) E. Number of Simple Paths (思维,图,bfs)

    题意:有一个\(n\)个点,\(n\)条边的图,问你长度至少为\(1\)的简单路径有多少条. 题解:根据树的性质,我们知道这颗树一定存在一个环,假如一棵树没有环,那么它的所有长度不小于\(1\)的简单 ...

  9. Codeforces Round #651 (Div. 2) C. Number Game (博弈,数学)

    题意:对于正整数\(n\),每次可以选择使它变为\(n-1\)或者\(n/t\) (\(n\ mod\ t=0\)且\(t\)为奇数),当\(n=1\)时便不可以再取,问先手赢还是后手赢. 题解:首先 ...

随机推荐

  1. 【Office_Word】Word排版

    文档排版的步骤: step1.先设置正文的样式 step2.再设置各级标题的样式 step3.最后在"多级列表"里设置各级标题编号 [注]最好按照这三步的顺序来排版,否则将会导致正 ...

  2. Vue—事件修饰符

    Vue事件修饰符 Vue.js 为 v-on 提供了事件修饰符来处理 DOM 事件细节,如:event.preventDefault() 或 event.stopPropagation(). Vue. ...

  3. PyCharm学习笔记(一) 界面配置

     通过Ctrl+鼠标滚轮调整字体大小  设置代码区默认字体及大小 设置调试区的字体大小 设置代码风格:如Tab缩进 定义Python模板文件 # @Time : ${DATE} ${TIME} # @ ...

  4. shell-code-1

    #!/bin/bash # online test tool: http://www.shucunwang.com/RunCode/shell/ name="pxy"#Attent ...

  5. MIP启发式算法:爬山算法 (Hill climbing)

    本文主要记录和分享学习到的知识,算不上原创. *参考文献见链接. 本文讲述的是求解MIP问题的启发式算法中的爬山算法 (Hill climbing). 目录 前言 Hill climbing 的过程 ...

  6. 合肥工业大学数据结构上机实验代码与实验报告(全)github地址

    我已经将这个学期的所有数据结构上机实验的代码与报告上传到github上了,一直都有这个想法,但没抽出时间来学习git.经过上周简单的练习后,我已经基本学会运营自己的代码仓库了.所有代码都是C++写的类 ...

  7. jmx_exportter+prometheus+grafana监控hadoop

    0.介绍(摘录自https://www.hi-linux.com/posts/25047.html) 什么是Prometheus? Prometheus是由SoundCloud开发的开源监控报警系统和 ...

  8. vscode and python

    http://robotkang.cc/2017/04/VS-Code-%E9%85%8D%E7%BD%AEPython/

  9. document文档碎片

    var arrText = ["1","2","3","4","5","6",& ...

  10. Delphi第三方控件安装卸载指南

    基本安装1.对于单个控件,Componet-->install component..-->PAS或DCU文件-->install; 2.对于带*.dpk文件的控件包,File--& ...