Skip to content
Programmingoneonone
Programmingoneonone
  • Engineering Subjects
    • Internet of Things (IoT)
    • Digital Communication
    • Human Values
  • Programming Tutorials
    • C Programming
    • Data structures and Algorithms
    • 100+ Java Programs
    • 100+ C Programs
    • 100+ C++ Programs
  • Solutions
    • HackerRank
      • Algorithms Solutions
      • C solutions
      • C++ solutions
      • Java solutions
      • Python solutions
    • Leetcode Solutions
    • HackerEarth Solutions
  • Work with US
Programmingoneonone
Programmingoneonone

HackerEarth City group problem solution

YASH PAL, 31 July 202413 February 2026
In this HackerEarth City group problem solution You are living in a town consisting of N cities. Furthermore, in this town, there are K city groups. You can reach any city from any city in the same city group instantaneously. you can go from any city in ith city-group to any city in i+1th city-group in 1 second and from any city in i+1th city-group to any city in ith city-group in 1 second for each i between 1 and K-1, you can also go from any city in first city-group to any city in Kth city-group in 1 second and from any city in Kth city-group to any city in first city-group in 1 second.
 
You have been given Q queries each containing two cities X and Y. For each query, you have to print the minimum time it takes to reach city Y from city X.
 
Each city group has a city that does not have a number (i.e. it is not one of the N cities mentioned above). you can visit those cities in the middle of your trip between cities X and Y given in queries.
 
HackerEarth City group problem solution
 

HackerEarth City group problem-solution.

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define fre freopen("in.txt","r",stdin)
#define pii pair<pair<int,int>, int>
#define f first
#define s second
#define rep(i,n) for(int i=0;i<n;i++)
#define pb push_back
int grp[100011];
int main() {
freopen("in00.txt","r",stdin);
freopen("out00.txt","w",stdout);
int N,K,S,x;
cin >> N >> K;
rep(i,K) {
cin >> S;
rep(j,S) {
cin >> x;
grp[x] = i;
}
}
int Q;
cin >> Q;
int X,Y;
while(Q--) {
cin >> X >> Y;
cout << min(abs(grp[X]-grp[Y]),K-abs(grp[X]-grp[Y])) << "n";
}
}
 
 

Second solution

#include <iostream>
#include <algorithm>
#include <string>
#include <assert.h>
using namespace std;

int n,k,q;
int T;

int grp[100100];

long long readInt(long long l,long long r,char endd){
long long x=0;
int cnt=0;
int fi=-1;
bool is_neg=false;
while(true){
char g=getchar();
if(g=='-'){
assert(fi==-1);
is_neg=true;
continue;
}
if('0'<=g && g<='9'){
x*=10;
x+=g-'0';
if(cnt==0){
fi=g-'0';
}
cnt++;
assert(fi!=0 || cnt==1);
assert(fi!=0 || is_neg==false);

assert(!(cnt>19 || ( cnt==19 && fi>1) ));
} else if(g==endd || g==-1 || (endd==' ' && g=='n' && x==0)){
if(is_neg){
x= -x;
}
assert(l<=x && x<=r);
return x;
} else {
assert(false);
}
}
}
string readString(char endd){
string ret="";
while(true){
char g=getchar();
assert(g!=-1);
if(g==endd){
break;
}

ret+=g;
}
return ret;
}
long long readIntSp(long long l,long long r){
return readInt(l,r,' ');
}
long long readIntLn(long long l,long long r){
return readInt(l,r,'n');
}
string readStringLn(){
return readString('n');
}
string readStringSp(){
return readString(' ');
}


int main(){
n=readIntSp(1,100000);
k=readIntLn(1,100000);
for(int i=1;i<=n;i++){
grp[i]=-1;
}
int sm=0;
for(int i=0;i<k;i++){
int s;
s=readIntSp(0,n);
sm += s;
for(int j=0;j<s;j++){
int h;
if(j!=s-1){
h=readIntSp(1,n);
} else {
h=readIntLn(1,n);
}
assert(grp[h]==-1);
grp[h]=i;
}
}
assert(sm==n);
q=readIntLn(1,100000);
while(q--){
int a,b;
a=readIntSp(1,n);
b=readIntLn(1,n);
cout<<min(abs(grp[a]-grp[b]),k-abs(grp[a]-grp[b]))<<endl;
}
assert(getchar()==-1);
}
 
coding problems solutions HackerEarth HackerEarth

Post navigation

Previous post
Next post

Leave a Reply

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

Programmingoneonone

We at Programmingoneonone, also known as Programming101 is a learning hub of programming and other related stuff. We provide free learning tutorials/articles related to programming and other technical stuff to people who are eager to learn about it.

Pages

  • About US
  • Contact US
  • Privacy Policy

Practice

  • Java
  • C++
  • C

Follow US

  • YouTube
  • LinkedIn
  • Facebook
  • Pinterest
  • Instagram
©2026 Programmingoneonone | WordPress Theme by SuperbThemes