Travel Pass Codechef Solution September Challenge

Travel Pass Codechef Solution

Chef is going on a road trip and needs to apply for inter-district and inter-state travel e-passes. It takes A minutes to fill each inter-district e-pass application and B minutes for each inter-state e-pass application.

His journey is given to you as a binary string S of length N where 0 denotes crossing from one district to another district (which needs an inter-district e-pass), and a 1 denotes crossing from one state to another (which needs an inter-state e-pass). Find the total time Chef has to spend on filling the various forms.

Input Format

  • The first line of the input contains a single integer T denoting the number of test cases. The description of T test cases follows.
  • Each test case contains two lines of input.
  • First line contains three space separated integers N,A and B.
  • Second line contains the string S.

Output Format

For each testcase, output in a single line the total time Chef has to spend on filling the various forms for his journey.

Constraints

  • 1≤T≤102
  • 1≤N,A,B≤102
  • Si∈{′0′,′1′}

Subtasks

Subtask #1 (100 points): original constraints

Sample Input 1

3
2 1 2
00
2 1 1
01
4 2 1
1101

Sample Output 1

2
2
5

Explanation

Test case 1: Chef needs total 2 inter-district e-passes, and he will be filling them in total 1⋅2=2 minutes.

Test case 2: Chef needs total 1 inter-district e-pass and 3 inter-state e-passes, and he will be filling them in total 2⋅1+1⋅3=5 minutes.

SOLUTION

Program C: Travel Pass Codechef Solution in C

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
    int t;
    scanf("%d",&t);
    for(int i=0;i<t;i++)
    {
    int n;
    scanf("%d",&n);
    char arrr[n];
    char arr[n];
    int a,b;
    scanf("%d %d",&a,&b);
    int len=0;
    scanf("%s",arrr);
    int one=0,zero=0;
       for(int i=0;arrr[i]!='\0';i++)
    {
        arr[i]=arrr[i];
        len++;
    } 
    for(int i=0; i<n; i++)
    {
        if(arr[i]=='0')
        {
            zero++;
        }
        else
        {
            one++;
        }
    }
    printf("%d\n",a*zero+b*one);
    }
}

Program C++: Travel Pass Codechef Solution in C++

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int t;
    cin >> t;
    while (t--)
    {
        int n, a, b,ca=0,cb=0;
        cin >> n >> a >> b;
        string s;
        cin>>s;
        for (int i = 0; i < n; i++)
        {
            if(s[i]=='0')
            ca++;
            else
            cb++;
        }
        int ans=0;
        ans=((ca*a)+(cb*b));
        cout<<ans<<endl;
    }
    return 0;
}

Program Java: Travel Pass Codechef Solution in Java

import java.util.*;
import java.lang.*;
import java.io.*;
class Codechef
{
    public static void main (String[] args) throws java.lang.Exception
    {
        
        Scanner sc = new Scanner(System.in);
        int t = sc.nextInt();
        try{
        while(t-- > 0){
            int n,a,b;
            n = sc.nextInt();
            a = sc.nextInt();
            b = sc.nextInt();
            sc.nextLine();
            String s = sc.nextLine();
            char[] charArr = s.toCharArray();
            int countZero=0,countOne=0;
            for(int i=0;i<n;i++){
                if(charArr[i]=='0')countZero++;
                else countOne++;
            }
            System.out.println(a*countZero + b*countOne);
        }
        }
        catch(Exception e){
        System.out.println("");
        }
    }
    
}

Program Python: Travel Pass Codechef Solution in Python

for _ in range(int(input())):
    a,b,c=map(int,input().split())
    s=input()
    tmp=s.count('0')*b + s.count('1')*c
    print(tmp)

September Long Challenge 2021 Solution

Leave a Comment

thirteen − 6 =