题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4968
题目类型:贪心
ac代码:
#include <cstdio>
#include <iostream>
using namespace std;
double calmax(int av, int n);
double calmin(int ave, int n);
int main()
{
int t;
scanf("%d", &t);
int average, n;
while(t--)
{
scanf("%d%d", &average, &n);
double ma = calmax(average, n);
double mi = calmin(average, n);
printf("%.4f %.4f\n", mi / n,ma / n);
}
}
double calmax(int av, int n)
{
double ans = 2 * n;
int re = (av - 60) * n;
int k = 0;
while(re >= 25)
{
re -= 25;
ans += 2;
k ++;
if(k == n)
return ans;
}
if(re >= 10)
{
re -= 10;
ans += 0.5;
}
else
return ans;
while(re >= 5)
{
re -= 5;
ans += 0.5;
}
return ans;
}
double calmin(int ave, int n)
{
if(ave <= 69)
return 2.0 * n;
double ans = 2 * n;
int re = (ave - 69) * n;
while(re >= 31)
{
re -= 31;
ans += 2;
}
if(re >= 16)
{
ans += 2;
return ans;
}
while(re > 0)
{
re -= 5;
ans += 0.5;
}
return ans;
}