trq1995的专栏

题意:输入一组数,,将其割成三段,每一段的值相同

解法:因为要割三组值相同,所以每一组的值一定是整体求和的1/3

千万记得long long,血的代价

#include <stdio.h>#include <string.h>long long num[500005];int main(){int n;long long a;int i,j;long long all;while(scanf("%d",&n)!=-1){all=0;memset(num,0,sizeof(num));for(i=0;i<n;i++){scanf("%I64d",&a);num[i]=num[i-1]+a;}if(num[n-1]%3!=0){printf("0\n");continue;}long long temp=num[n-1]/3;a=0;for(i=n-2;i>=0;i–){if(num[i]==temp)all+=a;if(num[i]==(2*temp))a++;}printf("%I64d\n",all);}return 0;}

旅行是一种病。一旦感染了,你就再也无法摆脱。

trq1995的专栏

相关文章:

你感兴趣的文章:

标签云: