sdut 1214 天仙配

天仙配

Time Limit: 1000MS Memory limit: 65536K

題目描述

今年的七夕異常的熱鬧,很多對新人都把結婚日子選在了那天。於是,他們決定一起舉辦“天上地下姻緣一線牽”活動,在廣場上舉行集體婚禮。
爲了活躍氣氛,司儀想出了一個很有意思的遊戲:會場有n(1≤n≤10000)對新人,司儀在地上畫出一排(共2n個)格子,每個格子裏都寫着一個隨機的整數Ai(1≤Ai≤10000)。
遊戲開始後,讓新人們任意地站成一排(可能會有兩個人站在了同一個格子裏)。等他們都站好以後,司儀開始計算他們每個人自己的得分,記分規則是:男方的分數等於把從自己所站的位置開始一直累加到開頭,女方的分數等於從自己所站位置開始一直累加到末尾。如果某一對新人的得分數是相同的,那你們就獲勝。可以得到一份司儀精心準備的禮物。^_^
比如,有3對新人,地上的那一排數字爲:3,6,2,4,5,2。
如果男方站在第三個位置(2),他的得分爲:3+6+2=11;女方站在第4個位置(4),她的得分爲4+5+2=11。兩人得分相同,可以獲勝。
或者男方站第6個位置(2),女方站第1個位置(3),他們的得分都等於22,也可以獲勝。
這麼高興的日子不能太掃興,所以我們發現,無論地上的數字填成什麼樣子,女方站在開頭和男方站在末尾就一定可以獲獎。我們不得不感嘆司儀的用心良苦。呵呵。
碰巧,redraiment的姐姐和姐夫也在那天結婚,爲了幫姐姐奪得獎品,redraiment來請你幫忙,計算一下他姐姐獲得獎品有多少種站法。

輸入

輸入包括多組測試數據。
每組測試數據包括兩行。
第一行爲一個數據n,即新人的對數。
第二行有2n個數據,代表地上的數字。
輸入以0結束,這一行不做處理。

輸出

每組輸出佔一行。
輸出共有幾種站法。

示例輸入

3
3 6 2 4 5 2
0

示例輸出

2

提示

 

來源

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int cmp(const void *a,const void *b)
{
	return *(int *)a-*(int *)b;
}
int main()
{
	int n,a[100000],i,j,s1,s2,count,b[500000];
	while(scanf("%d",&n)!=EOF&&n!=0)
	{

		for(i=0;i<=2*n-1;i++)
			scanf("%d",&a[i]);
		count=0;
		s1=0;
		s2=0;
		j=0;
		for(i=2*n-1;i>=0;i--)
		{
			s2+=a[i];
			b[j]=s2;
			j++;
		}
				s1=0;
		s2=0;
	
		for(i=0;i<=2*n-1;i++)
		{
			s2+=a[i];
			b[j]=s2;
			j++;
		}
	
		qsort(b,j,sizeof(b[0]),cmp);
		for(i=0;i<=j-2;i++)
			if(b[i]==b[i+1]) count++;
      
		printf("%d\n",count);
	}
	return 0;
} 

ZJGSU

示例程序

不知爲何總rt,最後直接把數組開的大大的,不是10000呢,代碼

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章