【51.27%】【codeforces 604A】Uncowed Forces

time limit per test1 second
memory limit per test256 megabytes
inputstandard input
outputstandard output
Kevin Sun has just finished competing in Codeforces Round #334! The round was 120 minutes long and featured five problems with maximum point values of 500, 1000, 1500, 2000, and 2500, respectively. Despite the challenging tasks, Kevin was uncowed and bulldozed through all of them, distinguishing himself from the herd as the best cowmputer scientist in all of Bovinia. Kevin knows his submission time for each problem, the number of wrong submissions that he made on each problem, and his total numbers of successful and unsuccessful hacks. Because Codeforces scoring is complicated, Kevin wants you to write a program to compute his final score.

Codeforces scores are computed as follows: If the maximum point value of a problem is x, and Kevin submitted correctly at minute m but made w wrong submissions, then his score on that problem is . His total score is equal to the sum of his scores for each problem. In addition, Kevin’s total score gets increased by 100 points for each successful hack, but gets decreased by 50 points for each unsuccessful hack.

All arithmetic operations are performed with absolute precision and no rounding. It is guaranteed that Kevin’s final score is an integer.

Input
The first line of the input contains five space-separated integers m1, m2, m3, m4, m5, where mi (0 ≤ mi ≤ 119) is the time of Kevin’s last submission for problem i. His last submission is always correct and gets accepted.

The second line contains five space-separated integers w1, w2, w3, w4, w5, where wi (0 ≤ wi ≤ 10) is Kevin’s number of wrong submissions on problem i.

The last line contains two space-separated integers hs and hu (0 ≤ hs, hu ≤ 20), denoting the Kevin’s numbers of successful and unsuccessful hacks, respectively.

Output
Print a single integer, the value of Kevin’s final score.

Examples
input
20 40 60 80 100
0 1 2 3 4
1 0
output
4900
input
119 119 119 119 119
0 0 0 0 0
10 0
output
4930
Note
In the second sample, Kevin takes 119 minutes on all of the problems. Therefore, he gets of the points on each problem. So his score from solving problems is . Adding in 10·100 = 1000 points from hacks, his total score becomes 3930 + 1000 = 4930.

【题目链接】:http://codeforces.com/contest/604/problem/A

【题解】

不要按照样例解释的方法算。。
总感觉那个方法是误导的。。
直接按照所给的方法算就好了。
有除法、还是用double的吧.

【完整代码】

#include <bits/stdc++.h>
using namespace std;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define rei(x) scanf("%d",&x)
#define rel(x) scanf("%I64d",&x)

typedef pair<int,int> pii;
typedef pair<LL,LL> pll;

//const int MAXN = x;
const int dx[9] = {0,1,-1,0,0,-1,-1,1,1};
const int dy[9] = {0,0,0,-1,1,-1,1,-1,1};
const double pi = acos(-1.0);

double m[6],w[6],hs,hu;
double poi[6];

int main()
{
    //freopen("F:\rush.txt","r",stdin);
    poi[1] = 500,poi[2] = 1000,poi[3] = 1500,poi[4] = 2000,poi[5] = 2500;
    rep1(i,1,5)
        cin >> m[i];
    rep1(i,1,5)
        cin >> w[i];
    cin >> hs >> hu;
    rep1(i,1,5)
    {
        double temp1 = 0.3*poi[i];
        double temp2 = (1-m[i]/250)*poi[i]-50*w[i];
        poi[i] = max(temp1,temp2);
    }
    double ans = 0;
    rep1(i,1,5)
        ans+=poi[i];
    ans += (hs*100-50*hu);
    printf("%.0lf
",ans);
    return 0;
}
原文地址:https://www.cnblogs.com/AWCXV/p/7626812.html