Skip to main content

Compare the Triplets | Hackerrank C++

Compare the Triplets



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.

The rating for Alice's challenge is the triplet a = (a[0], a[1], a[2]), and the rating for Bob's challenge is the triplet b = (b[0], b[1], b[2]).

The 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


Sample Input:

5 6 7

3 6 10

Sample Output:

1 1


CODE:


#include <bits/stdc++.h>

using namespace std;

string ltrim(const string &);
string rtrim(const string &);
vector<string> split(const string &);

/*
 * Complete the 'compareTriplets' function below.
 *
 * The function is expected to return an INTEGER_ARRAY.
 * The function accepts following parameters:
 *  1. INTEGER_ARRAY a
 *  2. INTEGER_ARRAY b
 */

vector<int> compareTriplets(vector<int> a, vector<int> b) {
    vector<int> score;
    int alice=0,bob=0;
    for (int i=0; i<a.size(); i++) 
    {
        if (a[i]>b[i]) 
        {
            alice++;
        }
        else if (b[i]>a[i]) 
        {
            bob++;
        }
    }
    score.push_back(alice);
    score.push_back(bob);
    return score;
}

int main()
{
    ofstream fout(getenv("OUTPUT_PATH"));

    string a_temp_temp;
    getline(cin, a_temp_temp);

    vector<string> a_temp = split(rtrim(a_temp_temp));

    vector<int> a(3);

    for (int i = 0; i < 3; i++) {
        int a_item = stoi(a_temp[i]);

        a[i] = a_item;
    }

    string b_temp_temp;
    getline(cin, b_temp_temp);

    vector<string> b_temp = split(rtrim(b_temp_temp));

    vector<int> b(3);

    for (int i = 0; i < 3; i++) {
        int b_item = stoi(b_temp[i]);

        b[i] = b_item;
    }

    vector<int> result = compareTriplets(a, b);

    for (size_t i = 0; i < result.size(); i++) {
        fout << result[i];

        if (i != result.size() - 1) {
            fout << " ";
        }
    }

    fout << "\n";

    fout.close();

    return 0;
}

string ltrim(const string &str) {
    string s(str);

    s.erase(
        s.begin(),
        find_if(s.begin(), s.end(), not1(ptr_fun<intint>(isspace)))
    );

    return s;
}

string rtrim(const string &str) {
    string s(str);

    s.erase(
        find_if(s.rbegin(), s.rend(), not1(ptr_fun<intint>(isspace))).base(),
        s.end()
    );

    return s;
}

vector<string> split(const string &str) {
    vector<string> tokens;

    string::size_type start = 0;
    string::size_type end = 0;

    while ((end = str.find(" ", start)) != string::npos) {
        tokens.push_back(str.substr(start, end - start));

        start = end + 1;
    }

    tokens.push_back(str.substr(start));

    return tokens;
}

Thanks For Visiting

Comments

Popular posts from this blog

Geeksforgeeks | Practice | Learn to Comment

  Learn to comment Code: void comment ( int a , int b , int c ) {     cout << a << endl ;     //cout<<b<<endl;     cout << c << endl ; } Input: a = 5 b = 6 c = 15 Output: 5 15

HackerRank SQL | Revising the Select Query I | codewitharyan

Problem Statement Query all columns for all American cities in the CITY table with populations larger than 100000 . The CountryCode for America is USA . Video Solution: APPROACH 1. First select all the column 2. Then use two condition a) POPULATION > 100000 b) COUNTRYCODE="USA" MYSQL QUERY select * from city where POPULATION > 100000 and  COUNTRYCODE= "USA" ; Explanation 1. select * from city : It is used to select all the column from the table city. 2. where : It is used to describe conditions Thank You For Visiting...💖💖💖

Revising the Select Query II | Hackerrank SQL Solution | MYSQL

  Problem Statement Query the  NAME  field for all American cities in the  CITY  table with populations larger than  120000 . The  CountryCode  for America is  USA . The   CITY   table is described as follows: .                                            Video Solution: APPROACH 1. First select name column 2. Then use two condition a) POPULATION > 120000 b) COUNTRYCODE="USA" MYSQL QUERY select name from city where POPULATION > 120000 and  COUNTRYCODE= "USA" ; Explanation 1. select name from city : It is used to select all the column from the table city. 2. where : It is used to describe conditions Thank You For Visiting...💖💖💖