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。わーい。