斌神无所不能
斌神無所不能
Description
??? 如果你以為斌神只會ACM?come on,斌神是無所不能的!其實,在2012/11/11這天之后,斌神就已經是億萬富翁了,為什么呢?因為他在天貓上開了個網店大賣了一種商品——2012世界末日諾亞方舟船票!因為諾亞方舟是斌神造的,所以斌神壟斷了這種商品。以前一直生意不好,沒想到光棍節那天訂單絡繹不絕,卡爆了天貓。但是,這種情況斌神夜觀天象的時候已經預測出了,所以他一邊限制一次性購買數量,一邊卻制定了下面的策略:
1.如果訂單時間為00:00:00 ~ 05:59:59,那么原價賣出
2.如果訂單時間為06:00:00 ~ 17:59:59,那么按原價10倍賣出
3.如果訂單時間為18:00:00 ~ 23:59:59,那么按原價100倍賣出
斌神作為老板雇傭了你,讓你計算總收入。其實斌神完全可以在數秒內口算出來,只是他女朋友叫他回家吃飯。
?
Input
??? 輸入包含多個樣例。對于每個樣例,第一行包含兩個整數n, p (0<n<=100,000, ?100,000<=p<=100,000,000)表示下單人數和船票單價。接下來n行,每行都是這樣的形式:
h:m:s k
“h:m:s”表示h時m分s秒下單,k表示訂票數量(0 < k <= 10).
?
Output
??? 輸出一行,單獨一個數表示收入
?
Sample Input
3 100000
0:0:0 1
6:0:0 1
18:0:0 1
?
Sample Output
11100000
?
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 題目來源:中南大學2012年11月新手賽
?
AC代碼
#include <cstdio>
int main()
{
??? freopen("data.in","r",stdin);
??? freopen("data.out","w",stdout);
??? int n,p,h,m,s,k;
??? char ch;
??? while (scanf("%d%d",&n,&p)!=EOF)
??? {
??? __int64 sum=0;
??? for (int i=1;i<=n;i++)
??? {
??????? scanf("%d%c%d%c%d%d",&h,&ch,&m,&ch,&s,&k);
??????? int qq=h*10000+m*100+s;
??????? int rr=0;int tt=0;
??????? if (qq/60000>0){rr=1;}
??????? if (qq/180000>0){tt=1;}
??????? int temp=rr+tt;
??????? switch(temp)
??????? {
??????????? case 0:sum=sum+k*p;break;
??????????? case 1:sum=sum+k*p*10;break;
??????????? case 2:sum=sum+k*p*100;break;
??????? }
??? }
??? printf("%I64d\n",sum);
??? }
??? fclose(stdin);
??? fclose(stdout);
??? return 0;
}
這個題目要注意輸出的數據會超過10億位,因此不能再用int類型了,而要用long long或者__int64,再判斷過程中,使用switch語句,從而避免大量條件語句的出現。。。讀入數據時,由于數據中間用:,所以用一個字符變量去接受,之后就不用管了。。。數據處理方面,將小時*10000,分鐘*100,再將三個數據相加與60000和180000(實際上就是6點和18點)相比較。
???
轉載于:https://www.cnblogs.com/kkrisen/archive/2012/11/27/2791127.html
總結
- 上一篇: 开机自动重启脚本
- 下一篇: Dx11DemoBase 基类(二) 初