UVA12157 Tariff Plan
一.题意
有两种通话方式:
- 每通话 $30$ 秒收费 $10$元,那意味着你通话 $29$ 秒或者更少,将收费 $10$ 元,通话 $30$ 秒到 $59$ 秒,将收费 $20$ 元。
- 每通话 $60$ 秒收费 $15$ 元,那意味着你通话 $59$ 秒或者更少,将收费 $15$ 元,通话 $60$ 秒到 $119$ 秒,将收费 $30$ 元。
二.思路
因为有多组测试数据,每组测试数据给你多次通话的时间,请你输出较省钱的方案,以及所需要的钱,如果相等的话就输出两种方案名称,以及他们的价钱。由题意可得两种方案的价钱如下:
方案一每次的价钱:$(\frac{t}{30}+1)\times10$
方案二每次的价钱:$(\frac{t}{60}+1)\times15$
三.代码
好现在进入正题,思路题目已经讲得很清晰,我们只用分别求出两种方案所需的钱,输出较优值就行了。
代码 :
#include<cstdio>//日常头文件
#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int t,n,a,ans1,ans2;
int main()
{
scanf("%d",&t);
for(int i=1;i<=t;i++)
{
ans1=ans2=0;//记得赋初值
scanf("%d",&n);
for(int i=1;i<=n;i++)//多次通话
{
scanf("%d",&a);
ans1+=((a/30)+1)*10;//方案一
ans2+=((a/60)+1)*15;//方案二
}
printf("Case %d: ",i);//格式要求
if(ans1<ans2) printf("Mile %d\n",ans1);
else if(ans1>ans2) printf("Juice %d\n",ans2);
else printf("Mile Juice %d\n",ans1);
}
return 0;
}

浙公网安备 33010602011771号