题目链接:ZYB loves Score
题面:
ZYB loves Score
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 395 Accepted Submission(s): 232
Problem Description
One day,ZYB participated in the BestCoder Contest
There are four problems. Their scores are 1000,1500,2000,2500
According to the rules of BestCoder,If you solve one problem at x minutes,
You will get (250-x)/250?100% of
the original scores.
Obviously the final score must be an integer,becasue the original scores are multiple of 250
And if you make x wrong
submissions,the score of this problem you get will be reduced by 50?x
For example, if you solved the first problem in 5 minutes and you make one wrong submisson, the score of this problem is 980-50=930
To prevent very low scores,the lowest score of one problem is 40% of
its original score
Input
Multiple test cases, the first line contains an integer T(no more than 20), indicating the number of cases. Each test case contains four lines
For i-th line of each test case there are two integers A,B which
means you solved the i-th problem in A minutes and you have made B wrong submissons.
0≤A≤105,0≤B≤100
Output
For each case, the output should occupies exactly one line. The output format is Case #x: ans, here x is the data number begins at 1.
Sample Input
2 4 0 12 0 20 0 103 0 17 1 29 0 57 0 84 0
Sample Output
Case #1: 5722 Case #2: 5412
Source
解题:套下公式即可,注意分数不能低于40%。
代码:
#include <iostream> #include <cmath> #define e 2.718281828459 using namespace std; int max(double a,int b) { if(a>b)return (int)a; else return b; } int main() { int t,total,timee,wrong; cin>>t; for(int i=1;i<=t;i++) { total=0; for(int j=1000;j<=2500;j+=500) { cin>>timee>>wrong; total+=max((250.0-timee)/250*j-wrong*50,j*2/5); } cout<<"Case #"<<i<<": "<<total<<endl; } return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。