I used the same code on another editor and it gave me the same output but cant figure out why its giving me error here.
b[i][0]==b[i][1]
This case is not covered.
The way you are calculating sum of digits of numbers is also wrong.
#include <bits/stdc++.h>
using namespace std;
int compare(long long int a,long long int b){
long long int sum1=0,sum2=0;
while(a>0 && b>0){
sum1+=a%10;
sum2+=b%10;
a=a/10;
b=b/10;
}
if(a){
while(a){
sum1+=a%10;
a=a/10;
}
}
else if(b){
while(b){
sum2+=b%10;
b=b/10;
}
}
if(sum1>sum2) return 10;
else if(sum1<sum2) return 20;
else if(sum1==sum2) return 30;
}
int main() {
long long int t;
cin>>t;
while(t--){
long long int n;
cin>>n;
long long int chef[n];
long long int monty[n];
for(long long int i=0;i<n;i++){
cin>>chef[i];
cin>>monty[i];
}
long long int chefpoints=0;
long long int montypoints=0;
for(long long int i=0;i<n;i++){
int decision=compare(chef[i],monty[i]);
if(decision==10){
chefpoints+=1;
}else if (decision==20){
montypoints+=1;
}else{
montypoints=1;
chefpoints=1;
}
}
if(chefpoints>montypoints){
cout<<"0"<<" "<<chefpoints<<endl;
}else if(chefpoints<montypoints){
cout<<"1"<<" "<<montypoints<<endl;
}else{
cout<<"2"<<" "<<(chefpoints||montypoints)<<endl;
}
}
return 0;
}
//this is my soln why it is giving wrong ans please tell me
AC Code
#include <bits/stdc++.h>
using namespace std;
int compare(long long int a,long long int b){
long long int sum1=0,sum2=0;
while(a>0 && b>0){
sum1+=a%10;
sum2+=b%10;
a=a/10;
b=b/10;
}
if(a){
while(a){
sum1+=a%10;
a=a/10;
}
}
else if(b){
while(b){
sum2+=b%10;
b=b/10;
}
}
if(sum1>sum2) return 10;
else if(sum1<sum2) return 20;
else if(sum1==sum2) return 30;
}
int main() {
long long int t;
cin>>t;
while(t--){
long long int n;
cin>>n;
long long int chef[n];
long long int monty[n];
for(long long int i=0;i<n;i++){
cin>>chef[i];
cin>>monty[i];
}
long long int chefpoints=0;
long long int montypoints=0;
for(long long int i=0;i<n;i++){
int decision=compare(chef[i],monty[i]);
if(decision==10){
chefpoints+=1;
}else if (decision==20){
montypoints+=1;
}else{
montypoints+=1;
chefpoints+=1;
}
}
if(chefpoints>montypoints){
cout<<"0"<<" "<<chefpoints<<endl;
}else if(chefpoints<montypoints){
cout<<"1"<<" "<<montypoints<<endl;
}else{
cout<<"2"<<" "<<(chefpoints)<<endl;
}
}
return 0;
}
If you prefer link
first mistake-
montypoints=1;
chefpoints=1;
second mistake-
chefpoints||montypoints
Notice the changes in code attached above.
Thankyou.
Can anyone point out the mistake in my code, it is giving correct output with the sample cases but not submitting.
#include
using namespace std;
int main() {
// your code goes here
int t;
scanf("%d",&t);
while(t–)
{
int n,c_count=0,m_count=0;
scanf("%d",&n);
while(n–)
{
int a,b,temp=0;
scanf("%d %d",&a,&b);
while(a!=0)
{
temp+=a%10;
a/=10;
}
a=temp; temp=0;
while(b!=0)
{
temp+=b%10;
b/=10;
}
b=temp;
if(a>b){c_count++;}
else{m_count++;}
}
if(c_count>m_count){cout<<"0 "<<c_count;}
else if(m_count>c_count){cout<<"1 "<<m_count;}
else if(m_count==c_count){cout<<"2 "<<m_count;}
cout<<endl;
}
return 0;
}
/* package codechef; // don’t place package name! */
import java.util.;
import java.lang.;
import java.io.*;
/* Name of the class has to be “Main” only if the class is public. */
class Codechef
{
public static void main (String[] args) throws java.lang.Exception
{
// your code goes here
Scanner sc=new Scanner(System.in);
System.out.println(“enter a Number for chef”);
while(sc.hasNext()){
int n=21;
int sum1=0;
while(n!=0){
sum1=sum1+n%10;
n=n/10;
}
System.out.println(sum1);
int k=20;
int sum2=0;
while(k!=0){
sum2=sum2+k%10;
k=k/10;
}
System.out.println(k);
if(sum1>sum2){
System.out.println(“chef wins the game”);
}
else{
System.out.println(“monty wins the game”);
}
}
}
}
can you guys tell me what is wrong here??
Chef and Card Game
Code is in PYTHON 3.6
test_cases = int(input())
for _ in range(test_cases):
rounds = int(input(""))
chef_points = 0
morty_points = 0
for _ in range(rounds):
chef, morty = input().split()
chef_pow = sum(map(int,list(chef)))
morty_pow = sum(map(int,list(morty)))
if chef_pow > morty_pow :
chef_points+=1
elif morty_pow > chef_pow:
morty_points+=1
else:
chef_points+=1
morty_points+=1
if chef_points > morty_points:
print(0,chef_points)
elif chef_points < morty_points:
print(1,morty_points)
else:
print(2,chef_points)
We’d have to guess at the original indentation, and we might get it wrong.
Please format your code yourself - it’s quite easy
Got It !!! thanks
Now You can try it out
Thanks for the Help again
#include<bits/stdc++.h>
using namespace std;
int main(){
int t;
cin >>t;
while(t--){
int n;
long long chef = 0,morty = 0;
cin >> n;
string a , b;
for(int i = 0; i<n; i++){
long long int A = 0, B = 0;
cin >> a >> b;
for(char x: a) A += x -'0';
for(char x: b) B += x -'0';
if(A>B) chef += 1;
else if(B>A) morty += 1;
else{
chef +=1;
morty +=1;
}
}
if(chef>morty) cout<<"0 "<<chef<<endl;
else if(chef<morty) cout<<"1 "<<morty<<endl;
else cout<<"2 " <<chef<<endl;
}
}
#include
using namespace std;
int main() {
int t;
cin>>t;
while(t–){
int n,chef=0,mory=0;
cin>>n;
for(int i=0;i<n;i++){
int a,b,n=0,f=0;
cin>>a>>b;
while(a!=0){
n=a%10;
a=a/10;
}
while(b!=0){
f=b%10;
b=b/10;
}
if(n>f) chef++;
else if(n<f) mory++;
else chef++,mory++;
}
if(chef==mory)
cout<<“2”<<" “<<chef<<endl;
else if(chef>mory)
cout<<“0”<<” “<<chef<<endl;
else
cout<<“1”<<” "<<mory<<endl;
}
return 0;
}
Help me why I’m not getting passed even if i checked my output shows right…!!