Skip to content
TheCScience
TheCScience
  • Engineering Subjects
    • Human Values
    • Computer System Architecture
    • Digital Communication
    • Internet of Things
  • NCERT Solutions
    • Class 12
    • Class 11
  • HackerRank solutions
    • HackerRank Algorithms Problems Solutions
    • HackerRank C solutions
    • HackerRank C++ problems solutions
    • HackerRank Java problems solutions
    • HackerRank Python problems solutions
TheCScience
TheCScience

HackerRank Beautiful 3 Set Problem Solution

Yashwant Parihar, June 13, 2023August 1, 2024

In this post, we will solve HackerRank Beautiful 3 Set Problem Solution.

You are given an integer n. A set. S, of triples (x, y, z) is beautiful if and only if:

  • 0 < xi, Yi, Zi
  • Xi + Yi + zi = n, Vi: 1 ≤ i ≤ |S|
  • Let X be the set of different x,’s in S. Y be the set of different y’s in S. and Z be the set of different z, in S. Then |X = Y = Z = |S|
    The third condition means that all,’s are pairwise distinct. The same goes for y, and zi. Given n. find any beautiful set having a maximum number of elements. Then print the cardinality of S (i.e.. |S) on a new line, followed by S❘ lines where each line contains 3 space-separated integers describing the respective values of a y₁, and z₁.

Input Format

A single integer, n.

Output Format
On the first line, print the cardinality of S (i.e.. [S]). For each of the S subsequent lines, print three space-separated numbers per line describing the respective values of xi, yi, and zi, for triple i in S.

Sample Input

3

Sample Output

3
0 1 2
2 0 1
1 2 0
HackerRank Beautiful 3 Set Problem Solution
HackerRank Beautiful 3 Set Problem Solution

Beautiful 3 Set Problem C Solution

//Tanuj Khattar 
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<limits.h>

#define gu getchar_unlocked 
#define pu putchar_unlocked
#define LL long long int
#define ULL unsigned long long int
#define si(n) scanf("%d",&n)
#define dout(n) printf("%d\n",n)
#define sll(n) scanf("%lld",&n)
#define lldout(n) printf("%lld\n",n)

#define min(a,b) ((a)<(b)?(a):(b))
#define max(a,b) ((a)<(b)?(b):(a))
#define ROUNDOFFINT(d) d = (int)((double)d + 0.5)
#define PLUSWRAP(index,n) index = (index+1)%n
#define MINUSWRAP(index,n) index = (index + n -1)%n

#define INF 1000000000    //1 billion (10^9)

#define FLUSHN while(gu()!='\n')
#define FLUSHS while(gu()!=' ')

int cmpfunc(const void *a,const void *b)
{
    return *(int *)a - *(int *)b;
}


int main()
{
    int n;
    si(n);
    int ans=2*n;
    ans/=3;
    ans++;
    dout(ans);
    if(n%3!=2)
    {
        int i;
        int b=n/3;
        b++;
        for(i=0;i<ans;i=i+1)
        {
            printf("%d %d %d\n",i,b,n-i-b);
            b=(b+1)%ans;
        }
    }
    else
    {
        int fl=0;
        int b=2+n-ans;
        int i;
        for(i=0;i<ans;i++)
        {
            printf("%d %d %d\n",i,b,n-i-b);
            b=b+1;
            if(b==ans+1)
                b=0;
        }
    }
    return 0;
}

Beautiful 3 Set Problem C++ Solution

#include <bits/stdc++.h>

using namespace std;

#define ALL(x) (x).begin(),(x).end()

template<typename T> inline bool checkmin(T &a, T b) { if (b < a) { a = b; return 1; } return 0; }
template<typename T> inline bool checkmax(T &a, T b) { if (b > a) { a = b; return 1; } return 0; }

typedef long long ll;

vector<vector<int>> check(int s, int n) {
    for (int p = 0; p < 2; ++p) {
        vector<bool> v(n + 1, 0);
        vector<vector<int>> ans(s + 1);
        bool ok = true;
        int j = s;
        for (int i = 0; i < 2; ++i) {
            int y = (i + p) % 2;
            while (y <= s && j >= 0) {
                int z = n - j - y;
                if (z < 0) {
                    ok = 0;
                    break;
                }
                if (v[z]) {
                    ok = 0;
                    break;
                }
                v[z] = true;
                ans[j] = vector<int>({j, y, z});
                y += 2;
                j--;
            }
            if (!ok) {
                break;
            }
        }
        if (ok) {
            return ans;
        }
    }
    return vector<vector<int>>();
}

int main() {
    int n;
    cin >> n;
    vector<vector<int>> ans(1, vector<int>({0, 0, n}));
    for (int i = 1; i <= n; ++i) {
        vector<vector<int>> tmp = check(i, n);
        if (tmp.size()) {
            ans = tmp;
        }
    }
    cout << ans.size() << endl;
    for (int i = 0; i < ans.size(); ++i) {
        cout << ans[i][0] << ' ' << ans[i][1] << ' ' << ans[i][2] << endl;
    }
}

Beautiful 3 Set Problem C Sharp Solution

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
class Solution {
    static void Solve(int n)
    {
        int[,] mat = new int[n + 1, n + 1];
        for (int x = 0; x <= n; x++)
        {
            for (int y = 0; y <= n; y++)
            {
                mat[x, y] = n - x - y;
                //Console.Write("{0,2} ",mat[x,y]);
            }
            //Console.WriteLine();
        }
        int max = 0, idx = 0, m1, m2;
        for (int x = 0; x <= n; x++)
        {
            m1 = mat[x, 0] / 2 + 1;
            m2 = mat[0, m1] / 2 + 1;
            if (x >= m2 && mat[x, 0] % 2 != mat[0, m1] % 2)
            {
                if (m1 + m2 > max)
                {
                    max = m1 + m2;
                    idx = x;
                }
            }
        }
        Console.WriteLine(max);
        m1 = mat[idx, 0] / 2 + 1;
        for (int y = 0; y < m1; y++)
        {
            Console.WriteLine("{0} {1} {2}", y, idx + y, n - idx - 2 * y);
        }
        m2 = mat[0, m1] / 2 + 1;
        for (int x = 0; x < m2; x++)
        {
            Console.WriteLine("{0} {1} {2}", m1 + x, x, n - 2 * x - m1);
        }
    }
    static void Main(String[] args) {
        int n = Convert.ToInt32(Console.ReadLine());
        Solve(n);
    }
}

Beautiful 3 Set Problem Java Solution

import java.io.*;
import java.util.*;

public class Solution {

    public static void main(String[] args) throws IOException {
        BufferedWriter bw = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int max = n/3*2;
        if (n%3==2) {
            max++;
        }
        bw.write(String.valueOf(max+1));
        bw.newLine();
        int first = max;
        for (int i = (max+1)/2; i >= 0; i--) {
            bw.write(String.valueOf(first+" "+i+" "+(n-i-first)));
            bw.newLine();
            first--;
        }
        int sn = n;
        if (n%3==1) {
            sn--;
        }
        for (int i = sn-first-1; first >= 0; i--) {
            bw.write(String.valueOf(first+" "+i+" "+(n-i-first)));
            bw.newLine();
            first--;
        }
        bw.close();
    }
}

Beautiful 3 Set Problem JavaScript Solution

function processData(input) {
  let k = Math.floor(2*input/3+1)
  let x=[],y=[],z=[]
  console.log(k)
  for(let i = 0, j=Math.floor(input/3 + input%3); i < k; ++i, ++j){
      if((i+j)>input) j=(j+1)%2
      if(!x.includes(i) && !y.includes(j)){
        x.push(i)
        y.push(j)
        z.push(input-(i+j))
      }
  }
  for(let i = 0;i<x.length;i++){
    console.log(x[i]," ",y[i]," ",z[i])
  }
} 

process.stdin.resume();
process.stdin.setEncoding("ascii");
_input = "";
process.stdin.on("data", function (input) {
    _input += input;
});

process.stdin.on("end", function () {
   processData(_input);
});

Beautiful 3 Set Problem Python Solution

n = int(input().strip())
i = n * 2 // 3
print (i+1)
x=(i+1)//2
for j in range(x+1):
    print(j,x+j,n-x-2*j)

for j in range(x+1,i+1):
    print(j,j-x-1,n-2*j+x+1)
  
    
c C# C++ HackerRank Solutions java javascript python CcppCSharpHackerrank Solutionsjavajavascriptpython

Post navigation

Previous post
Next post

TheCScience

We at TheCScience.com are working towards the goal to give free education to every person by publishing in dept article about Secondary, Senior-Secondary, and Graduation level subjects.

Pages

About US

Contact US

Privacy Policy

DMCA

Engineering Subjects

Internet of Things

Human Values

Digital Communication

Computer System Architecture

Programming Tutorials

Data Structure and Algorithm

C

Java

NCERT

Class 12th

©2026 TheCScience | WordPress Theme by SuperbThemes