POJ Problem 3940 Grey Area

主要是要注意結果的輸出格式

#include<iostream>
#include<stdio.h>
#include<vector>
using namespace std;
int main()
{
    int n, w;
    while(cin >> n >> w){
        if(n == 0 && w == 0) break;
        vector<int> cnt(80, 0);
        int base = -1, len = -1;
        for(int i = 0; i < n; ++i){
            int v;
            cin >> v;
            ++cnt[v/w];
            base = max(base, cnt[v/w]);
            len = max(len, v/w);
        }
        vector<double> color(len);
        for(int i = 0; i < len; ++i)
            color[i] = (len-i)*1.0/len;
        double ans=0.0;
        for(int i = 0; i < len; ++i)
            ans += (1.0*color[i]*cnt[i])/base;
        ans += 0.01;
        printf("%.10g\n",ans);
    }
    return 0;
}


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