The Lead Game Codechef Solution

Hello Programmers In this post, you will know how to solve the The Lead Game Codechef Solution.

The Lead Game Codechef Solution
The Lead Game Codechef Solution

One more thing to add, don’t directly look for the solutions, first try to solve the problems of Codechef by yourself. If you find any difficulty after trying several times, then you can look for solutions.

Problem

The game of billiards involves two players knocking 3 balls around on a green baize table. Well, there is more to it, but for our purposes this is sufficient.

The game consists of several rounds and in each round both players obtain a score, based on how well they played. Once all the rounds have been played, the total score of each player is determined by adding up the scores in all the rounds and the player with the higher total score is declared the winner.

The Siruseri Sports Club organises an annual billiards game where the top two players of Siruseri play against each other. The Manager of Siruseri Sports Club decided to add his own twist to the game by changing the rules for determining the winner. In his version, at the end of each round, the cumulative score for each player is calculated, and the leader and her current lead are found. Once all the rounds are over the player who had the maximum lead at the end of any round in the game is declared the winner.

Consider the following score sheet for a game with 5 rounds:

Round   Player 1   Player 2

1              140 82

2             89 134

3 90 110

4 112 106

5 88 90

The total scores of both players, the leader and the lead after each round for this game is given below:

Round   Player 1 Player 2   Leader Lead

1 140           82 Player 1 58

2 229          216 Player 1    13

3 319 326 Player 2    7

4 431 432 Player 2 1

5 519 522 Player 2 3

Note that the above table contains the cumulative scores.

The winner of this game is Player 1 as he had the maximum lead (58 at the end of round 1) during the game.

Your task is to help the Manager find the winner and the winning lead. You may assume that the scores will be such that there will always be a single winner. That is, there are no ties.

Input

The first line of the input will contain a single integer N (N ≤ 10000) indicating the number of rounds in the game. Lines 2,3,…,N+1 describe the scores of the two players in the N rounds. Line i+1 contains two integer Si and Ti, the scores of the Player 1 and 2 respectively, in round i. You may assume that 1 ≤ Si ≤ 1000 and 1 ≤ Ti ≤ 1000.

Output

Your output must consist of a single line containing two integers W and L, where W is 1 or 2 and indicates the winner and L is the maximum lead attained by the winner.

Example

Input:

5
140 82
89 134
90 110
112 106
88 90

Output:

1 58

The Lead Game CodeChef Solutions in Python

n = int(input())
player1_score = 0
Player2_score = 0
lead = 0
for i in range(n):
    score1, score2 = map(int, input().split())
    player1_score = player1_score + score1
    Player2_score = Player2_score + score2
    diff = player1_score - Player2_score
    if diff > 0 and diff > lead:
        lead = diff
        leader = 1
    elif diff < 0 and abs(diff) > lead:
        lead = abs(diff)
        leader = 2
print(leader,lead)

The Lead Game CodeChef Solutions in CPP

#include <iostream>
using namespace std;
int main() {
 // your code goes here
 int a, b, c, diff, max=0, winner, temp, sc_1=0, sc_2=0;
 cin>>a;
 while(a--) {
  cin>>b>>c;
  sc_1=sc_1+b;
  sc_2=sc_2+c;
  if(sc_1>sc_2) {
   diff=sc_1-sc_2; temp=1;
  }
  else {
   diff=sc_2-sc_1; temp=2;
  }
  if(diff>max) {
   max=diff; winner=temp;
  }
 }
 cout<<winner<<" "<<max;
 return 0;
}

The Lead Game CodeChef Solutions in JAVA

import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int cumScore1 = 0;
		int cumScore2 = 0;
		int maxLead = -1;
		int winner = -1;
		int N = sc.nextInt();
		for (int i = 0; i < N; i++) {
			int S = sc.nextInt();
			int T = sc.nextInt();
			cumScore1 += S;
			cumScore2 += T;
			int lead = cumScore1 - cumScore2;
			if (Math.abs(lead) > maxLead) {
				maxLead = Math.abs(lead);
				winner = (lead > 0) ? 1 : 2;
			}
		}
		System.out.println(winner + " " + maxLead);
		sc.close();
	}
}

Disclaimer: The above Problem (The Lead Game) is generated by CodeChef but the solution is provided by BrokenProgrammers. This tutorial is only for Educational and Learning purpose.

Note:- I compile all programs, if there is any case program is not working and showing an error please let me know in the comment section. If you are using adblocker, please disable adblocker because some functions of the site may not work correctly.

Next: Reverse The Number Codechef Solution

Leave a Reply

Your email address will not be published. Required fields are marked *