题目链接:

题目链接:点击打开链接

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
#include <iostream>
#include <map>
#include <set>
#include <math.h>
using namespace std;
#define inf 10000000
#define N 100050
#define ll __int64
ll n;
ll a[N], lsum[N], rsum[N];
ll lok[N], rok[N];
int main(){
ll i, j;
while(cin>>n) {
ll sum = 0;
bool siz = false;
for(i=1;i<=n;i++)cin>>a[i], sum += a[i], siz |= a[i];
if(!siz) {
cout<<(n-1)*(n-2)/2<<endl;
continue;
}
if(sum%3){puts("0");continue;}
sum/=3;
lsum[0] = 0;
for(i=1;i<=n;i++)lsum[i] = lsum[i-1]+a[i];
rsum[n+1] = 0;
for(i=n;i;i--)rsum[i] = rsum[i+1]+a[i];
memset(lok, 0, sizeof lok);
memset(rok, 0, sizeof rok);
for(i=1;i<=n;i++) {
if(lsum[i]==sum){
lok[i] = 1;
}
// if(i==n)lok[i]=0;
// lok[i] += lok[i-1];
} for(i=n;i;i--) {
if(rsum[i]==sum){
rok[i] = 1;
}
rok[i]+=rok[i+1];
}
ll ans = 0;
for(i = 1; i+2<=n; i++)
ans += lok[i] * rok[i+2];
// ll ans = (lok[n]*(lok[n]-1))/2;
cout<<ans<<endl;
}
return 0;
}
/*
7
-1 1 -1 1 -1 1 0
9
-5 -2 1 1 5 0 -4 4 0
100
3 0 -5 2 -3 -1 -1 0 -2 -5 -4 2 1 2 -2 -1 -1 -4 3 -1 -3 -1 5 0 -4 -4 -1 0 -2 -2 0 1 -1 -2 -1 -5 -4 -2 3 1 -3 0 -1 1 0 -1 2 0 -2 -1 -3 1 -2 2 3 2 -3 -5 2 2 -2 -2 1 2 -2 -1 3 0 -4 7 -2 2 1 4 -9 -1 -2 -1 0 -1 0 -2 -2 -1 1 1 -4 2 -3 -3 7 1 1 -3 -7 0 -2 0 5 -2 */

CodeForces 21C Stripe 2 构造题的更多相关文章

  1. Codeforces 482 - Diverse Permutation 构造题

    这是一道蛮基础的构造题. - k         +(k - 1)      -(k - 2) 1 + k ,    1 ,         k ,             2,    ....... ...

  2. Educational Codeforces Round 7 D. Optimal Number Permutation 构造题

    D. Optimal Number Permutation 题目连接: http://www.codeforces.com/contest/622/problem/D Description You ...

  3. B - Save the problem! CodeForces - 867B 构造题

    B - Save the problem! CodeForces - 867B 这个题目还是很简单的,很明显是一个构造题,但是早训的时候脑子有点糊涂,想到了用1 2 来构造, 但是去算这个数的时候算错 ...

  4. Codeforces 1491G - Switch and Flip(构造题)

    Codeforces 题目传送门 & 洛谷题目传送门 obviously,难度高一点的构造题对我来说都是不可做题 首先考虑将排列拆成一个个置换环,也就是 \(\forall i\) 连边 \( ...

  5. CodeForces 297C Splitting the Uniqueness (脑补构造题)

    题意 Split a unique array into two almost unique arrays. unique arrays指数组各个数均不相同,almost unique arrays指 ...

  6. cf251.2.C (构造题的技巧)

    C. Devu and Partitioning of the Array time limit per test 1 second memory limit per test 256 megabyt ...

  7. hdu4671 Backup Plan ——构造题

    link:http://acm.hdu.edu.cn/showproblem.php?pid=4671 其实是不难的那种构造题,先排第一列,第二列从后往前选. #include <iostrea ...

  8. BZOJ 3097: Hash Killer I【构造题,思维题】

    3097: Hash Killer I Time Limit: 5 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 963  Solved: 36 ...

  9. Codeforces 1045E. Ancient civilizations 构造 计算几何 凸包

    原文链接https://www.cnblogs.com/zhouzhendong/p/CF1045E.html 4K码量构造题,CF血腥残暴! 题解 首先,如果所有点颜色相同,那么直接连个菊花搞定. ...

随机推荐

  1. Qt 获取字符串的UTF8编码值

    看到群里有人在问怎么获取字符串的UTF8编码值 自己测试了下 熟悉下函数 <span style="font-size:18px;">    ui->setupU ...

  2. vs2010断点使用技巧

    msdn:http://msdn.microsoft.com/zh-cn/library/vstudio/5557y8b4.aspx 有很多断点的文章. 为提供更大的灵活性,Visual Studio ...

  3. kingso_module - Taocode

    kingso_module - Taocode 模块介绍 Merger 功能介绍 Merger的功能: 合并多台Searcher机器的部分查询结果,得到最终的完整查询结果 向Detail集群请求最终展 ...

  4. android4.4组件分析--service组件

    6       Service 6.1            service介绍 6.1.1.            基本介绍 Service是Android四大组件之中的一个(其余的是activit ...

  5. Qt删除指定文件

    Qt删除指定文件: QFile fileTemp(filename); fileTemp.remove();

  6. TortoiseSVN (一) - 疑难操作

    引用: http://blog.sina.com.cn/s/blog_74c22b210101cy3s.html   一.由于Unity打包过程需要耗费很长的时间,在测试过程中如果只需测某几种功能,则 ...

  7. java--内部类访问final成员

    局部类只能访问外包方法中的final成员.位于方法内部的局部类,可以访问局部类之外,外包方法之内的所以变量和方法,但是生命周期不同,延长生命周期的办法就是将变量设置为final类型. 1)从程序设计语 ...

  8. Android 修改屏幕解锁方式

    Android 修改屏幕解锁方式 问题 在手机第一次开机的时候,运行手机激活的APP 在激活APP允许过程中,当用户按电源键的时候,屏幕黑掉,进入锁屏状态 手机默认的锁屏是滑动解锁 用户这个时候再一次 ...

  9. 在OpenShift平台开发Node.js程序

    设置process.env方便本地调试 --------------------- 修改~/.profile,增加下面两行,然后执行`. ~/.profile`: export OPENSHIFT_N ...

  10. Boost 库Program Options--第二篇

    程式執行參數處理函式庫:Boost Program Options(2/N) 前一篇已經大致解釋了 Boost Program Options 基本上的使用方法.而這一篇,則來細講一下選項描述(opt ...