POJ3015 Expected Difference

しばらく更新さぼってましたね。すみませんね。いつの間にかTCでDiv1に上がっていたのになぁ。

さてこの問題。適度な数学ゲーで楽しい。

#include<stdio.h>
#include "stdafx.h"
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
	for(;;)
	{
		int num,cho;
		scanf("%d%d",&num,&cho);
		if(num==0&&cho==0)
		{
			break;
		}
		vector<int>vec;
		for(int i=0;i<num;i++)
		{
			int zan;
			scanf("%d",&zan);
			vec.push_back(zan);
		}
		double kak=1;
		double ret=0;
		for(int i=0;i<num;i++)
		{
			//printf(" %.3lf\n",kak);
			ret-=kak*vec[i];
			ret+=kak*vec[num-1-i];
			kak/=num-i-1;
			kak*=num-cho-i;
		}
		ret*=cho;
		ret/=num;
		printf("%.3lf\n",ret);
	}
}

これでPOJ150AC。わーい。