看转换的钱加买转换后的钱与另一种比较,多就不转,少就转。

https://vjudge.net/contest/436484#problem/D

代码

#include<stdio.h>
#include<string.h>
int main(){
    int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        int a,b,c,d;
        scanf("%d%d%d%d",&a,&b,&c,&d);
        char s[a+1];
        getchar();
        gets(s);
        int len=strlen(s);
        int t=0,y=0;
        for(int j=0;j<len;j++){
            if(s[j]-'0'==1)t++;
            else if(s[j]-'0'==0)y++; 
        }
        if(b==c)printf("%d\n",b*len);
        else if(b>c){
            if(b>=(c+d))printf("%d\n",y*d+c*len);
            else printf("%d\n",t*c+b*y);        
        }
        else{
            if(c>=(b+d))printf("%d\n",t*d+b*len);
            else printf("%d\n",t*c+b*y);
        }
        
    }
    return 0;
} 

 

posted on 2021-05-04 14:08  TYoUer  阅读(76)  评论(0)    收藏  举报