sgu152: Making round

難得一見的大水題。
隨便亂搞就AC了。

#include <cmath>
#include <cstdio>
#include <cstring>

inline int read()
{
    int x = 0, f = 1, t = getchar();
    while(t < '0' || t > '9') t == '-' ? f = -1 : 0, t = getchar();
    while(t >= '0' && t <= '9') x = (x<<1) + (x<<3) + t - '0', t = getchar();
    return x * f;
}
const int maxn = 10005;
int n, a[maxn], ans[maxn], can[maxn];
int main()
{
    register int i, sum = 0, use = 0;
    n = read();
    for(i = 1; i <= n; ++i)
        sum += a[i] = read();
    for(i = 1; i <= n; ++i)
    {
        a[i] *= 100;
        can[i] = a[i] % sum;
        use += ans[i] = a[i] / sum;
    }
    use = 100-use;
    for(i = 1; i <= n; ++i)
    {
        if(can[i] && use)
        {
            use--;
            ans[i]++;
        }
    }
    for(int i = 1; i <= n; ++i)
        printf("%d ", ans[i]);
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章