@ranjeethinge and @secret_santa , paste your code in between a pair of 3 back ticks (```).
Or provide a link to your submission. This is a simple problem. You might want to figure it out yourself.
I got it, thanks for pointing it out
I made the required changes. Please help me sort out why am I getting wrong answer. The problem was very simple and I used the same logic which was given at the start of the post.
#include<string>
using namespace std;
int main() {
// your code goes here
int T;
cin>>T;
while(T--){
int n,k;
cin>>n>>k;
int A[k];
string S[n];
for(int i = 0; i< k; i++){
cin>>A[i];
}
for(int i = 0; i<n;i++ ){
cin>>S[i];
}
for(int i = 0; i < n; i++){
int sum = 0;
for(int j =0;j<k;j++){
if(S[i][j] == '1'){
sum += A[j];
}
}
cout<<sum<<endl;
}
}
return 0;
}
I think it should be long long , as I made the same error & after changing it got accepted
Yeah, as said by @mittal_sagar , the answer would not fit in an Integer. You should use bigger one, say long or long long. I guess there are no other mistakes.
thank you!
got it thank you!!
thanks bro it worked.
but i have a doubt, In c++ long int and int both are 4 bytes so why int is not working?
I used long long, long long int, and even int. But none of them worked. Gave me WA.
Can anyone tell me what’s wrong with my code?
My code:
#include <iostream>
using namespace std;
int main()
{
long long t;
long long n, k;
cin >> t;
long long scr = 0;
while (t--)
{
cin >> n >> k;
long long a[k];
for (size_t i = 0; i < k; i++)
{
cin >> a[i];
}
string s;
for (size_t i = 0; i < n; i++)
{
scr = 0;
cin >> s;
for (size_t j = 0; j < 2; j++)
{
if (s[j] - '0' == 1)
{
scr += a[j];
}
else if (s[j] - '0' == 0)
scr += 0;
}
cout << scr << endl;
}
}
}
my code passed the given sample test case but is showing the wrong answer on submission. can ayone help me?
:::::::::::code::::::::::::
#include
#include<bits/stdc++.h>
using namespace std;
int score(string str,int arr[],int k)
{
int sum=0;
for(int i=0;i<str.length();i++)
{
if(str[i]==‘0’)sum=sum+0;
else if(str[i]==‘1’)
{
sum=sum+arr[i];
}
}
return sum;
}
int main()
{
int t;
cin >> t;
while (t>0)
{
int n,k;
cin >> n>>k;
int a[k];
for(int i = 0; i < k; ++i)
{
cin >> a[i];
}
string s[n];
for(int i = 0; i < n; ++i)
{
cin >> s[i];
}
for(int i=0;i<n;i++)
cout << score(s[i],a,k) << endl;
t--;
}
return 0;
}
Hey my code is giving tle error can anybody plss help how can i optimize it ??
code is here - CodeChef: Practical coding for everyone
Your code will work for test cases
As test cases had situation of 2 questions
What if there are 3 questions and array had 3 elements
I guess your code wont work in that case
I suggest read the problem again
I tried with case like there are 3 questions and 2 people solving it in that case it also worked
Hey ,Thanks for replying
I used total as long long instead of int and it got submitted.
Why j<2?
Shouldn’t it be j<k?
Use long long dude.
can anyone tell me how to solve this without if and ternary operator
Simple. See the following snippet.
char s[20000];
scanf("%s",s);
long long int score = 0;
for(int i=0;i<k;i++)
score += a[i] * (s[i] - '0');
printf("%lld\n", score);
Run this under a loop of N
The constraints of N and K were not mentioned separately. What if K = 1000000 and N = 1. It would still satisfy N * K <= 1000000. But most of the solutions would fail if this input is given.
Edit: I meant, if the size of array is statically declared.
import java.util.;
import java.lang.;
import java.io.*;
class Codechef
{
public static void main (String[] args) throws java.lang.Exception
{
// your code goes here
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
while(T–>0){
int N = sc.nextInt();
int K = sc.nextInt();
long arr[] = new long[K];
for (int i=0; i<K; i++){
arr[i] = sc.nextLong();
}
String []s = new String[N];
for (int i=0; i<N; i++) {
s[i] = sc.next();
}
for (int i=0; i<N; i++){
long out=0;
for (int j=0; j<K; j++) {
if(s[i].charAt(j) == ‘1’){
out += arr[j];
}
}
System.out.println(out);
}
}
}
}
Can anyone tell me why its giving me TLE error