CodeForces 408B Garland

Problem Link

 1 /*
 2 题目大意: 
 3   第一行输入纸张的类型和张数,第二行输入纸张类型 
 4   求可能拼出的最大面积;如果第二行中有第一行所不具备的纸张类型,则输出-1
 5 思路 : 我用了两个长度为 25 的 int 型数组来记录输入的字母的个数,然后逐一比较即可; 
 6 */ 
 7 #include <iostream>
 8 #include<string.h>
 9 #include<cstdio>
10 using namespace std;
11 
12 int main()
13 {
14     int i,j;
15     int a[26] = {0};
16     int b[26] = {0};
17     char s1[1001],s2[1001];
18     int flag = 1;
19     int sum = 0;
20 
21     scanf("%s",s1);
22     scanf("%s",s2);
23     int len1 = strlen(s1);
24     int len2 = strlen(s2);
25        
26     for(i = 0;i<=len1-1;i++)
27     {
28         j = s1[i] - 'a';
29         a[j]++;
30     }
31     for(i = 0;i<=len2-1;i++)
32     {
33         j = s2[i] - 'a';
34         b[j]++;
35     }
36 
37     for(i=0;i<=25;i++)
38     {
39             
40             
41         if(a[i]==0&&b[i]!=0)
42         {
43             flag = 0;
44                break;
45         }
46                 
47         if(a[i]>=b[i])
48             sum += b[i];
49         else
50             sum +=a[i];
51     }
52     if(flag)
53         printf("%d\n",sum);
54     else
55         printf("-1\n");
56         
57     
58     return 0;
59 }

 

posted @ 2015-03-06 19:42  constructora  阅读(136)  评论(0编辑  收藏  举报