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)