TLG - Editorial

import java.lang.Math;
public class Main{
public static void main(String args[]) {

    Scanner s = new Scanner(System.in);

int n = s.nextInt();
int wins[] = new int[n];
int lead[] = new int[n];
int cur_lead; int cur_win; int t=n; int win_round=0; int winner=0;

for(int z=0; z<n; z++){
int p1 = s.nextInt();
int p2 = s.nextInt();
cur_win = (p1>p2)?1:2; 
cur_lead = Math.abs(p1-p2);
wins[z]=cur_win;
lead[z]=cur_lead;
} 

int max_lead = lead[0];

for(int j=1;j<t;j++){
max_lead = Math.max(max_lead, lead[j]);
} 

int i;

for(i=0; i<t; i++){
if (lead[i]==max_lead)
{ win_round=i; break;}
else continue;
}

winner = wins[win_round];
System.out.println(""+winner+" "+max_lead);
System.exit(0);
}
}

Above code is reported wrong though working correctly. Can anyone please point out the mistake?

Can anyone explain to me what’s wrong in my code ? pls
#include<bits/stdc++.h>
using namespace std;
int main()
{ int t,a,b,i,p=0;
int s1=0,s2=0,s3=0,s4=0;

cin>>t;

for(i=0;i<t;i++)
{ cin>>a>>b;

 if (a>b)
{  s1=a-b;
   if(s1>s2)
   {
     p=1;       	   
  s2=a-b;
         
 
  }
  } else  
   { s3=b-a;
      if(s3>s4)
	  {
			   
   s4=b-a;
       
      } 
  }
}

 if (s2>s4)
  {  
  cout<<p<<" "<<s2;
  }
  else 
 {
   
  cout<<p<<" "<<s4;

}
return 0;
}

#include
using namespace std;
int main()
{
int rem,lead=0,leader=0,player;
int n;
cin>>n;
for(int i=0;i<n;i++)
{

	int a,b,rem=0;
	cin>>a>>b;
	if(a>b)
		{rem=a-b;
		player=1;}
	else
		{rem=b-a;
		player=2;
		}
	if(rem>lead)
	{lead=rem;
	leader=player;
	}

}
cout<<leader<<" "<<lead;
	
    return 0;

}
I am getting correct answer on gcc but when i am submitting here i am getting wrong answer.whats wrong in the above code?

This is Easy Solution For This Problem.I Tried to make it more understable using comment over every Line.

#include stdio.h
#include algorithm
#include stdlib.h


  int main()
  {
    int t,a,b,c=0,d=0;
    int arr[10005];
    scanf("%d",&t);
    for(int i=0;i<t;i++)
    {
       scanf("%d%d",&a,&b);
       c=c+a;               //This Will Save All the Score Of Player 1 in all round
       d=d+b;               //This Will Save All the Score Of Player 1 in all round
       arr[i]=c-d;          //This store lead in each round and save it into a array
    }
    
    int max=*std::max_element(arr,arr+t);  //This will find the maximum lead by Player 1
    int min=*std::min_element(arr,arr+t); //This will find the max lead by Player 2
    
    min=abs(min);       //This Will take the positive value of player 2 as it will be negative
    if(max>min)         //Check If Player1 Lead>Player 2 Lead if Yes Print 1 else 2
    {
        printf("%d %d\n",1,max);
    }
    else
    {
        printf("%d %d\n",2,min);
    }
    
    return 0;
  }

Happy Coding !!

Plzz can someone say , what’s wrong with my code ??

#include<stdio.h>
#define MAX 10000
int main()
{
int N,i,m,w,s[MAX],t[MAX],l[MAX],count;
scanf("%d",&N);
for(i=0;i<N;i++)
{
printf(“enter the scores”);
scanf("%d%d",&s[i],&t[i]);
l[i]=s[i]-t[i];
if(l[i]<0)
l[i]=(-1)*l[i];
}
m=l[0];
for(i=1;i<N;i++)
{
if(l[i]>m){
m=l[i];
count=i;
}
}
if(s[count]>t[count])
w=1;
else
w=2;
printf("%d %d",w,m);
return 0;
}

#include <stdio.h>

int main(void) {

int n,i,in1,in2,count=0,winner=0;
scanf("%d",&n);

for(i=0;i<n;i++)
{
	scanf("%d%d",&in1,&in2);
	if(in1>in2)
	{
		if((in1-in2)>count)
		{
		    count=in1-in2;
		    winner=1;
		}
	}
	else
	{
		if((in2-in1)>count)
		{
		    count=in2-in1;
		    winner=2;
		}
	}
}
printf("%d %d",winner,count);

return(0);

}

what is wrong with my solution??

1 Like

@shreya_0296
You are deciding he winner of a round based on the scores of that round it self…
But according to the problem statement… we have to decide the winner based on the cumulative scores…
i.e. if we want to decide the winner of round 3… then we need to sum up all the scores of round 1 and round 2 and round 3 of both players… now we need to decide the winner…

Here is my code… CodeChef: Practical coding for everyone

#include
using namespace std;

int main() {
int round;
cin>>round;
int S1[round-1],S2[round-1];
int L[round-1];
int winner[round-1];
int n;
for(int k=0;k<round;k++)
{
cin>>S1[k]>>S2[k];
}
for(int i=0;i<round;i++)
{
if(S1[i]>S2[i])
{L[i]=S1[i]-S2[i];
winner[i]=1;
}
else
{L[i]=S2[i]-S1[i];
winner[i]=2;
}
}
for(int j=0;j<round;j++)
{
if(L[0]<=L[j])
{ L[0]=L[j];
n=j;
}

}
cout<<winner[n]<<" "<<L[0];
return 0;

}

Why Solution is showing wrong answer despite it shows correct output.??

I have tried with the given logic the problem wants us to provide and is working fine with my test cases. But still I am getting a wrong answer. Here’s my code.
import java.io.*;

public class CodeChef {

public static void main(String[] args) throws Exception {
	BufferedReader read = new BufferedReader(new InputStreamReader(System.in));
	int size = Integer.parseInt(read.readLine());
	int[] p1 = new int[size];
	int[] p2 = new int[size];
	int[] leads = new int[size];
	int pos = 0;
	int max_lead = leads[0];
	for (int i = 0; i < size; i++) {
		String[] input1 = read.readLine().split(" ");
		p1[i] = Integer.parseInt(input1[0]);
		p2[i] = Integer.parseInt(input1[1]);
		leads[i] = Math.abs(p1[i] - p2[i]);
		if (max_lead < leads[i]) {
			max_lead = leads[i];
			pos = i;
		}
	}
	if (p1[pos] > p2[pos])
		System.out.println(1 + " " + max_lead);
	else
		System.out.println(2 + " " + max_lead);
}

}

#include
using namespace std;
int main()

{
int N,Si=0,Ti=0,i,diff1=0,diff2=0;
cin>>N;
for(i=0;i<N;i++)
{
cin>>Si>>Ti;
if(Si>Ti){
if(Si-Ti>diff1)
diff1=Si-Ti;
}
else if(Si<Ti){
if(Ti-Si>diff2)
diff2=Ti-Si;
}
}
if(diff1>diff2)
cout<<1<<" “<<diff1;
else
cout<<2<<” "<<diff2;
return 0;
}
WHAT IS WRONG?? it shows an error when I try submit my code.

Hello , I am using python. Everything in the code seems fine to me but its showing wrong answer. Can anyone help ??

t= input()

list1=[]

list2=[]

difference=[]

for i in range(int(t)):

user=input()

si,ti=user.split()

list1.append(int(si))

list2.append(int(ti))

difference.append(int(si)-int(ti))

sum1=sum(list1)

sum2=sum(list2)

if(max(difference)>abs(min(difference))):

print(1,max(difference))

elif(max(difference)<abs(min(difference))):

print(2,abs(min(difference)))

Your question is not complete may be because of your example case .

import java.util.Scanner;
class Pool
{
public static void main(String []args)
{
int n,first,second,w=0,l=0,test1=0,test2=0,lead1=0,lead2=0;
Scanner s=new Scanner(System.in);
n=s.nextInt();
for(;n>0;n–)
{
first=s.nextInt();
second=s.nextInt();
if(first>second)
{
test1=first-second;
lead1=test1;
if(lead1>lead2)
{l=lead1;
w=1;
}
}
if(second>first)
{
test2=second-first;
lead2=test2;
if(lead2>lead1)
{l=lead2;
w=2;
}
}

}

System.out.println(w+" "+l);

}
}

/////////// what is the problem … output is giving accurate but when submitting, it gives wrong answer

what’s wrong with my code!!!
#include
#include
using namespace std;
int main()
{
int t;
cin>>t;
int l=0;
do
{
int a,b;
cin>>a>>b;
if(abs(a-b)>abs(l))
l=a-b;
t–;
}while(t>0);
if(l>0)
cout<<1<<" “<<abs(l);
else
cout<<2<<” "<<abs(l);
return 0;
}

In this problem lead is considered as cumilative lead and not on basis of individual round.If ur code goes for individual round u will get wrong answer

AC Solution : CodeChef: Practical coding for everyone

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Test {

/**
 * @param args
 * @throws IOException 
 */

public static void main(String[] args) throws IOException {
	
	BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(System.in));
	
	int test=Integer.parseInt(bufferedReader.readLine());
	int arr1[]=new int[test];
	int arr2[]=new int[test];
	int score=0;
	int player=0;
	while(test>0){
		String s[]=bufferedReader.readLine().split(" ");
		int ar1C=Integer.parseInt(s[0]);
		int ar2C=Integer.parseInt(s[1]);
		arr1[test-1]=ar1C;
		arr2[test-1]=ar2C;
		test--;
	}
	for(int i=0;i<arr1.length;i++){
		if((arr1[i]-arr2[i])>0 &&(arr1[i]-arr2[i]>score)){
			score=arr1[i]-arr2[i];
			player=1;
		}
		else if((arr1[i]-arr2[i]<0 && Math.abs(arr1[i]-arr2[i])>score)){
			score=arr2[i]-arr1[i];
			player=2;
		}
	}
	System.out.print(player);
	System.out.print(" ");
	System.out.print(score);
	
}

}

my code is working exactly fine with test cases and all other possible inputs but as soon as i hit the submit button it shows wrong answer.
here is the source code.

include

int main ()
{
int n,i,diff,win;
scanf("%d",&n);
int max[n],winer[n],s[n],t[n];
for(i=0;i<n;i++)
{
scanf("%d%d",&s[i],&t[i]);
if(s[i]-t[i]>0)
{
max[i]=s[i]-t[i];
winer[i]=1;

    }
    else if(t[i]-s[i]>0)
        {
            max[i]=t[i]-s[i];
            winer[i]=2;



        }
}
        diff=max[0];
        win=winer[0];
        for(i=0;i<n;i++)
        {
            if(max[i]>=diff)
            {
                diff=max[i];
                win=winer[i];
            }

        }
        printf("%d %d",win,diff);

       return 0;
}

please tell where i m going wrong !

import java.util.;
import java.io.
;
import java.lang.;
import java.math.
;
class Leadgame{

private static void bubbleSort(int[] intArray) {
int z = intArray.length;
            int temp = 0;
           
            for(int i=0; i < z; i++){
                    for(int j=1; j < (z-i); j++){
                           
                            if(intArray[j-1] < intArray[j]){
                                    //swap the elements!
                                    temp = intArray[j-1];
                                    intArray[j-1] = intArray[j];
                                    intArray[j] = temp;
                            }
                           
                    }
            }

}

public static void main(String args[]) throws Exception{
	Scanner s=new Scanner(System.in);
	int n=s.nextInt();
	int m[]=new int[n];
	int k[]=new int[n];
	int a[]=new int[n];
	int b[]=new int[n];
	int t=0,l=0;
	for(int i=0;i<n;i++){
		if(n<=10000){
		m[i]=s.nextInt();
		k[i]=s.nextInt();
		if(m[i]>=1&&m[i]<=1000&&k[i]>=1&&k[i]<=1000){
		if(m[i]>k[i])   //for player 1
		{a[t]=m[i]-k[i];
			t++;}
		else
			{b[l]=k[i]-m[i];  //for player 2
		l++;}}
		else System.exit(0);}
		else System.exit(0);
	}
	//sorting a[t] and b[l] arrays
	
	bubbleSort(a);
	bubbleSort(b);
	
	if(a[0]>b[0])
		System.out.println("1 "+a[0]);
	else if(b[0]>a[0])
		System.out.println("2 "+b[0]);
	else System.exit(0);
	}
	}

// what is the problem with this code
//it isrunning well but not get accepted

rounds=input()
p1_score=[]
p2_score=[]
difference_array=[]
for i in xrange(0,rounds):
a, b = map(int, raw_input().split())
p1_score.append(a)
p2_score.append(b)
for t in range(0,rounds):
difference=p1_score[t]-p2_score[t]
difference_array.append(difference)
difference_array.sort()
x1=abs(difference_array[0])
x2=abs(difference_array[rounds-1])
if x1>x2:
print “2”, x1
elif x2>x1:
print “1”, x2
else:
pass

This is the code I wrote in Python 2.7. Please tell me what’s wrong with this. Test case works fine with it.