UVA12157 Tariff Plan

一.题意


有两种通话方式:

  1. 每通话 $30$ 秒收费 $10$元,那意味着你通话 $29$ 秒或者更少,将收费 $10$ 元,通话 $30$ 秒到 $59$ 秒,将收费 $20$ 元。
  2. 每通话 $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;
}
posted @ 2021-08-24 16:54  hubingshan  阅读(12)  评论(0)    收藏  举报  来源