我嘯51期間去杭州游玩,順便比賽。
經過查詢,去杭州要坐十幾個小時的火車啊,身為巨巨的我嘯肯定不能虧待了自己,所以在去杭州之前準備采購一番,讓自己能舒舒服服的度過這十幾個小時,所以,我嘯來到了干果店,準備買一些干果到路上吃,干果店的標價有點特殊,xxx p q:代表xxx這種干果1塊錢可以買p (kg),當前庫存共有q (kg),我嘯因為經費不夠,不能任性,所以只能盡量買多一點干果。
多組輸入,第1行為兩個整數n c(0 <= n <= 100 , 0 <= c <= 10000 ),代表干果店中有n種干果,和我嘯一共帶了c元錢。
之后第2到第n+1行,每行為:
xxx p q(xxx為字符串,長度<=100,p,q為整數,q是p的整數倍,1 <= p <= 10 , 0 <= q <= 100 )
代表xxx這種干果1塊錢可以買p (kg),當前庫存共有q (kg)
每組數據輸出一行,能買到的最多的干果重量
2 10aaa 1 5bbb 2 23 10aaa 1 5bbb 2 10ccc 3 9Example Output
72101
#include<stdio.h> | 
02 | #include<stdlib.h> | 
03 | struct | 
04 | { | 
05 |     char name[101]; | 
06 |     int p; | 
07 |     int q; | 
08 | }t,kind[101]; | 
09 | void main() | 
10 | { | 
11 |     int n,c,i,j,sum; | 
12 |     while(~scanf("%d%d",&n,&c)) | 
13 |     { | 
14 |         sum=0; | 
15 |         for(i=0;i<n;i++) | 
16 |             scanf("%s %d %d",kind[i].name,&kind[i].p,&kind[i].q); | 
17 |         for(i=0;i<n-1;i++) | 
18 |         { | 
19 |             for(j=0;j<n-i-1;j++) | 
20 |             { | 
21 |                 if(kind[j].p<kind[j+1].p) | 
22 |                 { | 
23 |                     t=kind[j];kind[j]=kind[j+1];kind[j+1]=t; | 
24 |                 } | 
25 |             } | 
26 |         } | 
27 |         for(i=0;i<n;i++) | 
28 |         { | 
29 |             if(c>(kind[i].q/kind[i].p)) | 
30 |             { | 
31 |                 sum+=kind[i].q; | 
32 |                 c=c-kind[i].q/kind[i].p; | 
33 |             } | 
34 |             else {sum=sum+c*kind[i].p;break;} | 
35 |         } | 
36 |         printf("%d/n",sum); | 
37 |     } | 
38 | } | 
新聞熱點
疑難解答