Compare the Triplets - Hackerrank Solution | Using C/C++ by Code4xU



Alice and Bob each created one problem for HackerRank. A reviewer rates the two challenges, awarding points on a scale from 1 to 100 for three categories: problem clarity, originality, and difficulty.

We define the rating for Alice’s challenge to be the triplet a = (a[0], a[1], a[2]) and the rating for Bob’s challenge to be the triplet b = (b[0], b[1], b[2]).

Your task is to find their comparison points by comparing a[0] with b[0], a[1] with b[1], and a[2] with b[2].

  • If a[i] > b[i], then Alice is awarded 1 point.
  • If a[i] < b[i], then Bob is awarded 1 point.
  • If a[i] = b[i], then neither person receives a point.

Comparison points is the total points a person earned.

Given a and b, determine their respective comparison points.

For example, a = [1, 2, 3] and b=[3, 2, 1]. For elements 0, Bob is awarded a point because a[0] < b[0]. For the equal elements a[1] and b[1], no points are earned. Finally, for elements 2, a[2] > b[2] so Alice receives a point. Your return array would be [1, 1] with Alice’s score first and Bob’s second.

Function Description

Complete the function compareTriplets in the editor below. It must return an array of two integers, the first being Alice’s score and the second being Bob’s.

compareTriplets has the following parameter(s):

  • a: an array of integers representing Alice’s challenge rating
  • b: an array of integers representing Bob’s challenge rating

Input Format

The first line contains 3 space-separated integers, a[0], a[1], and a[2], describing the respective values in triplet a.
The second line contains 3 space-separated integers, b[0], b[1], and b[2], describing the respective values in triplet b.

Constraints

  • < a[i] < 100
  • < b[i] < 100

Output Format

Return an array of two integers denoting the respective comparison points earned by Alice and Bob.

Sample Input 0

 5 6 7
3 6 10

Sample Output 0

 1 1

Explanation 0

In this example:

  • a = (a[0], a[1], a[2]) = (5, 6, 7)
  • b = (b[0], b[1], b[2]) = (3, 6, 5)

Now, let’s compare each individual score:

  • a[0] > b[0], so Alice receives 1 point.
  • a[1] = b[1], so nobody receives a point.
  • a[2] < b[2], so Bob receives 1 point.

Alice’s comparison score is 1, and Bob’s comparison score is 1. Thus, we return the array [1, 1].

Sample Input 1

 17 28 30
99 16 8

Sample Output 1

 2 1

Explanation 1

Comparing the 0th elements, 77 < 99 so Bob receives a point.
Comparing the 1st and elements, 28 > 16 and 30 > 8 so Alice receives two points.
The return array is [2, 1].

Solution:

Code In C

#include <math.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <assert.h> #include <limits.h> #include <stdbool.h> int main(){ int a0; int a1; int a2; scanf("%d %d %d",&a0,&a1,&a2); int b0; int b1; int b2; scanf("%d %d %d",&b0,&b1,&b2); int a,b; if(a0>b0) a++; else if(b0>a0) b++; if(a1>b1) a++; else if(b1>a1) b++; if(a2>b2) a++; else if(b2>a2) b++; printf("%d %d",a,b); return 0; }

Code In C++

#include <bits/stdc++.h> using namespace std; #define pb push_back #define mp make_pair #define REP(i, n) for (int i = 0; i < (int)(n); ++i) typedef long long LL; typedef pair<int, int> PII; int a[3], b[3]; int main() { REP(i, 3) scanf("%d", a + i); REP(i, 3) scanf("%d", b + i); int x = 0, y = 0; REP(i, 3) if (a[i] > b[i]) { ++x; } else if (a[i] < b[i]) { ++y; } printf("%d %d\n", x, y); return 0; }
Sajal Gupta

Hi, i am sajal.I am a hardworking engineering graduate specialised in Computer Science Engineering ... Along with my degree, I completed C/C++,.Net,Java and SQL courses From Youtube and Other sources and various technologies.I learnt helped me develop my final year project called Code4xU..

Post a Comment