CF 266 C. Number of Ways
2014-09-16 02:18
337 查看
传送门:http://codeforces.com/contest/466/problem/C
分成相等的三段,当a[ ]在 i 和 j 处都等于sum / 3 时(i< j),不难想到 sum(a[i+1] + a[i+2] .....a[j])= 0。那么找到sum * 2 / 3 的点时,直接加上前面的 sum / 3的点的个数就好了(和为0 的那段分给前或后都没关系)。
分成相等的三段,当a[ ]在 i 和 j 处都等于sum / 3 时(i< j),不难想到 sum(a[i+1] + a[i+2] .....a[j])= 0。那么找到sum * 2 / 3 的点时,直接加上前面的 sum / 3的点的个数就好了(和为0 的那段分给前或后都没关系)。
#include<stdio.h> #define N 500005 __int64 a ; int main() { int n; while(~scanf("%d", &n)) { a[0] = 0; __int64 x; for(int i = 1; i <= n; i++) { scanf("%I64d", &x); a[i] = a[i-1] + x; } if(a % 3 != 0) { printf("0"); continue; } x = a / 3; __int64 ans = 0, k = 0; for(int i = 1; i < n; i++) { if(a[i] == (x * 2)) { ans += k; } if(a[i] == x) { k++; } } printf("%I64d\n", ans); } return 0; }
相关文章推荐
- Codeforces Round #266 (Div. 2) C. Number of Ways
- CareerCup Number of ways to take n identical objects out of a bucket
- 【寒江雪】C.Number of Ways
- 【CODEFORCES】 C. Number of Ways
- B - Number of Ways
- cf C On Number of Decompositions into Multipliers
- Codeforces Round #266 (Div. 2)C. Number of Ways(想法题)
- codeforces 466 C Number of Ways
- C. Number of Ways
- Number of Ways
- Codeforces Round #266 (Div. 2)C. Number of Ways(想法题)
- codeforces round #266 C. Number of Ways
- Codeforces - 466C. Number of Ways - 思维、暴力
- Codeforces-466C-Number of Ways
- Codeforces466C Number of Ways
- Number of Ways
- FZU-2231-平行四边形数 cf-Number of Parallelograms
- Codeforces466C Number of Ways
- CF Number With The Given Amount Of Divisors
- CF 27E Number With The Given Amount Of Divisors