Skip to content

Commit a51a220

Browse files
authored
Merge pull request #878 from sidparashar2001/issue877
Created TheLeadGame
2 parents 9349c28 + 57ea891 commit a51a220

File tree

1 file changed

+77
-0
lines changed

1 file changed

+77
-0
lines changed

Codechef Problems/TheLeadGame.cpp

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
/*
2+
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.
3+
4+
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.
5+
6+
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.
7+
8+
Consider the following score sheet for a game with 5 rounds:
9+
10+
Round Player 1 Player 2
11+
1 140 82
12+
2 89 134
13+
3 90 110
14+
4 112 106
15+
5 88 90
16+
The total scores of both players, the leader and the lead after each round for this game is given below:
17+
18+
Round Player 1 Player 2 Leader Lead
19+
1 140 82 Player 1 58
20+
2 229 216 Player 1 13
21+
3 319 326 Player 2 7
22+
4 431 432 Player 2 1
23+
5 519 522 Player 2 3
24+
Note that the above table contains the cumulative scores.
25+
26+
The winner of this game is Player 1 as he had the maximum lead (58 at the end of round 1) during the game.
27+
28+
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.
29+
30+
Input
31+
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.
32+
Output
33+
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.
34+
Example
35+
Input:
36+
5
37+
140 82
38+
89 134
39+
90 110
40+
112 106
41+
88 90
42+
Output:
43+
1 58
44+
*/
45+
#include <bits/stdc++.h>
46+
using namespace std;
47+
int main()
48+
{
49+
int n, lead=INT_MIN,p1=0,p2=0,winner=0;
50+
cin >> n;
51+
for (int i = 0; i < n; i++)
52+
{
53+
int a,b;
54+
cin>>a>>b;
55+
//Adding the scores of player1 and player2 so that we can store there cumulative score sum in p1 and p2
56+
p1+=a;
57+
p2+=b;
58+
//If the cumulative sum of p1 is greater than p2
59+
if(p1>p2){
60+
//and their difference is greater than lead than the winner will be player 1
61+
if(p1-p2>lead){
62+
lead=p1-p2;
63+
winner=1;
64+
}
65+
}
66+
67+
else{
68+
//if their difference is greater than lead than the winner will be player 2
69+
if(p2-p1>lead){
70+
lead=p2-p1;
71+
winner=2;
72+
}
73+
}
74+
}
75+
cout<<winner<<" "<<lead;
76+
return 0;
77+
}

0 commit comments

Comments
 (0)