1 #include <stdio.h> 2 #include <string.h> 3 #include<math.h> 4 #include<stdlib.h> 5 int MAX(const void *a,const void *b) //升序排列 6 { 7 return *(int *)a-*(int *)b; 8 } 9 int MIN(const void *a,const void *b) //降序排列 10 { 11 return *(int *)b-*(int *)a; 12 } 13 int main() 14 { 15 int a[1001]; 16 char test[1001][33]; //商品名称 17 int cnt[1001]; //记录商品种类数量 18 int i,j; 19 int n,m; //n为商品牌价格数量,m为商品数量 20 int p=0,q=0; 21 int max,min; 22 while(scanf("%d %d ",&n,&m)!=EOF) 23 { 24 for(i=0;i<n;i++) 25 { 26 scanf("%d",&a[i]); 27 } 28 getchar(); 29 for(p=0,q=0;p<m;p++,q++) 30 { 31 gets(test[q]); 32 cnt[q]=1; 33 if(q>0) 34 { 35 for(j=0;j<q;j++) 36 { 37 if(strcmp(test[q],test[j])==0)cnt[j]++,q--; 38 } 39 } 40 } 41 qsort(cnt,q,sizeof(cnt[0]),MIN); //种类个数降序排列 42 qsort(a,n,sizeof(int),MAX); //价格升序排列求最小 43 for(j=0,min=0;j<q;j++) 44 { 45 min+=a[j]*cnt[j]; 46 } 47 qsort(a,n,sizeof(int),MIN); //价格降序排列求最大 48 for(j=0,max=0;j<q;j++) 49 { 50 max+=a[j]*cnt[j]; 51 } 52 printf("%d %d\n",min,max); 53 } 54 return 0; 55 }
1 #include <stdio.h> 2 #include <string.h> 3 #include<math.h> 4 #include<stdlib.h> 5 int MAX(const void *a,const void *b) //升序排列 6 { 7 return *(int *)a-*(int *)b; 8 } 9 int MIN(const void *a,const void *b) //降序排列 10 { 11 return *(int *)b-*(int *)a; 12 } 13 int main() 14 { 15 int a[1001]; 16 char test[1001][33]; //商品名称 17 int cnt[1001]; //记录商品种类数量 18 int i,j; 19 int n,m; //n为商品牌价格数量,m为商品数量 20 int p=0,q=0; 21 int max,min; 22 while(scanf("%d %d ",&n,&m)!=EOF) 23 { 24 for(i=0;i<n;i++) 25 { 26 scanf("%d",&a[i]); 27 } 28 getchar(); 29 for(p=0,q=0;p<m;p++,q++) 30 { 31 gets(test[q]); 32 cnt[q]=1; 33 if(q>0) 34 { 35 for(j=0;j<q;j++) 36 { 37 if(strcmp(test[q],test[j])==0)cnt[j]++,q--; 38 } 39 } 40 } 41 qsort(cnt,q,sizeof(cnt[0]),MIN); //种类个数降序排列 42 qsort(a,n,sizeof(int),MAX); //价格升序排列求最小 43 for(j=0,min=0;j<q;j++) 44 { 45 min+=a[j]*cnt[j]; 46 } 47 qsort(a,n,sizeof(int),MIN); //价格降序排列求最大 48 for(j=0,max=0;j<q;j++) 49 { 50 max+=a[j]*cnt[j]; 51 } 52 printf("%d %d\n",min,max); 53 } 54 return 0; 55 }
1 #include <stdio.h> 2 #include <string.h> 3 #include<math.h> 4 #include<stdlib.h> 5 int MAX(const void *a,const void *b) //升序排列 6 { 7 return *(int *)a-*(int *)b; 8 } 9 int MIN(const void *a,const void *b) //降序排列 10 { 11 return *(int *)b-*(int *)a; 12 } 13 int main() 14 { 15 int a[1001]; 16 char test[1001][33]; //商品名称 17 int cnt[1001]; //记录商品种类数量 18 int i,j; 19 int n,m; //n为商品牌价格数量,m为商品数量 20 int p=0,q=0; 21 int max,min; 22 while(scanf("%d %d ",&n,&m)!=EOF) 23 { 24 for(i=0;i<n;i++) 25 { 26 scanf("%d",&a[i]); 27 } 28 getchar(); 29 for(p=0,q=0;p<m;p++,q++) 30 { 31 gets(test[q]); 32 cnt[q]=1; 33 if(q>0) 34 { 35 for(j=0;j<q;j++) 36 { 37 if(strcmp(test[q],test[j])==0)cnt[j]++,q--; 38 } 39 } 40 } 41 qsort(cnt,q,sizeof(cnt[0]),MIN); //种类个数降序排列 42 qsort(a,n,sizeof(int),MAX); //价格升序排列求最小 43 for(j=0,min=0;j<q;j++) 44 { 45 min+=a[j]*cnt[j]; 46 } 47 qsort(a,n,sizeof(int),MIN); //价格降序排列求最大 48 for(j=0,max=0;j<q;j++) 49 { 50 max+=a[j]*cnt[j]; 51 } 52 printf("%d %d\n",min,max); 53 } 54 return 0; 55 }
1 #include <stdio.h> 2 #include <string.h> 3 #include<math.h> 4 #include<stdlib.h> 5 int MAX(const void *a,const void *b) //升序排列 6 { 7 return *(int *)a-*(int *)b; 8 } 9 int MIN(const void *a,const void *b) //降序排列 10 { 11 return *(int *)b-*(int *)a; 12 } 13 int main() 14 { 15 int a[1001]; 16 char test[1001][33]; //商品名称 17 int cnt[1001]; //记录商品种类数量 18 int i,j; 19 int n,m; //n为商品牌价格数量,m为商品数量 20 int p=0,q=0; 21 int max,min; 22 while(scanf("%d %d ",&n,&m)!=EOF) 23 { 24 for(i=0;i<n;i++) 25 { 26 scanf("%d",&a[i]); 27 } 28 getchar(); 29 for(p=0,q=0;p<m;p++,q++) 30 { 31 gets(test[q]); 32 cnt[q]=1; 33 if(q>0) 34 { 35 for(j=0;j<q;j++) 36 { 37 if(strcmp(test[q],test[j])==0)cnt[j]++,q--; 38 } 39 } 40 } 41 qsort(cnt,q,sizeof(cnt[0]),MIN); //种类个数降序排列 42 qsort(a,n,sizeof(int),MAX); //价格升序排列求最小 43 for(j=0,min=0;j<q;j++) 44 { 45 min+=a[j]*cnt[j]; 46 } 47 qsort(a,n,sizeof(int),MIN); //价格降序排列求最大 48 for(j=0,max=0;j<q;j++) 49 { 50 max+=a[j]*cnt[j]; 51 } 52 printf("%d %d\n",min,max); 53 } 54 return 0; 55 }