1 solutions

  • 0
    @ 2025-11-5 18:04:55

    C :

    #include <stdio.h>
    int main()
    {
    	int i,j,k=0,n,B,D,p,P,a[1000]={0,},b[1000]={0,},min,c,d,e,f;
    	char ch[1000];
    	scanf("%d%d%d%d%d",&n,&B,&D,&p,&P);
    	c=B;
    	d=D;
    	e=p;
    	f=P;
    	gets(ch);
    	for(i=0;i<n;i++)
    	{
    		gets(ch);
    		for(j=0;ch[j]!='\0';j++)
    		{
    			switch (ch[j])
    			{
    			case 'N':B=B*2;D=D*2;p=p*2;P=P*2;break;
    			case 'O':B=c;D=d;p=e;P=f;break;
    			case 'A':a[k]=a[k]+B+D+p;break;
    			case 'B':a[k]=a[k]+B+B+D+D+P;break;
    			case 'C':a[k]=a[k]+B+B+B+D+D+D+P+P;break;
    			}
    			b[k]++;
    		}
    		k++;
    	}
    	for(i=0;i<n;i++)
    	{
    		if(i==0)
    		{
    			min=a[i];
    		}
    		if(min>a[i])
    		{
    			min=a[i];
    		}
    	}
    	printf("%d",min);
    	return 0;
    }
    

    C++ :

    #include<stdio.h>
    #include<string.h>
    int n,B,D,p,P;
    int tim(char c){
    	if(c=='A') return B+D+p;
    	else if(c=='B') return 2*(B+D)+P;
    	else return 3*B+3*D+2*P;
    }
    int main(){
    //	freopen("in.txt","r",stdin);
    	int ans=999999,i,j,tem;
    	char str[10240];
    	scanf("%d%d%d%d%d%*c",&n,&B,&D,&p,&P);
    	for(i=0;i<n;i++){
    		gets(str);
    		tem=0;
    		for(j=strlen(str)-1;j>0;j--){
    			tem+=tim(str[j]);
    		}
    		if(str[0]=='N') tem*=2;
    		if(tem<ans) ans=tem;
    	}
    	printf("%d\n",ans);
    	return 0;
    }
    
    

    Java :

    import java.util.*;
    import java.io.*;
    
    public class Main {
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Scanner in = null;
    		try {
    			in = new Scanner(new FileInputStream("in.txt"));
    		} catch (Exception e) {
    			in = new Scanner(System.in);
    		}
    		while (in.hasNext()) {
    			int n = in.nextInt();
    			int B = in.nextInt();
    			int D = in.nextInt();
    			int p = in.nextInt();
    			int P = in.nextInt();
    			String s = in.next();
    			int min;
    			//
    			char[] c = s.toCharArray();
    			int time = 0;
    			for(int j = 1;j<c.length;j++)
    			{				
    				if(c[j]=='A')
    					time = time+(B+D+p);
    				else if(c[j]=='B')
    					time = time+(2*B+2*D+P);
    				else time = time+(3*B+3*D+2*P);
    			}
    			char cc = c[0];
    			if(cc=='N')
    				min = time*2;
    			else min = time;
    			//
    			for(int i = 1;i<n;i++)
    			{
    				String str = in.next();
    				char[] ch = str.toCharArray();
    				int time2 = 0;
    				for(int j = 1;j<ch.length;j++)
    				{
    					
    					if(ch[j]=='A')
    						time2 = time2+(B+D+p);
    					else if(ch[j]=='B')
    						time2 = time2+(2*B+2*D+P);
    					else time2 = time2+(3*B+3*D+2*P);
    				}
    				if(ch[0]=='N')
    					time2 = time2*2;
    				if(min>time2)
    					min = time2;
    			}
    			
    			
    			System.out.println(min);
    		}
    
    	}
    }
    
    
    • 1

    Information

    ID
    18766
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    (None)
    # Submissions
    0
    Accepted
    0
    Uploaded By