#include <iostream>
#include <bits/stdc++.h>
using namespace std;
class DSU
{
public :
int n;
vector<int> sz;
vector<int> parent;
DSU (int num)
{
n= num;
sz.resize(num+1,1);
parent.resize(num+1,1);
for(int i=0;i<=num;i++)
{
parent[i]=i;
}
}
int findParent (int x)
{
if(x==parent[x])
return x;
else
{
return parent[x]= findParent(parent[x]);
}
}
void unite(int x,int y)
{
int parentX = parent[x];
int parentY = parent[y];
if(sz[parentX] > sz [parentY])
{
parent[parentY]= parentX;
sz[parentX] = sz[parentX] + sz[parentY];
}
else
{
parent[parentX]= parentY;
sz[parentY] = sz[parentY] + sz[parentX];
}
}
};
int earliestConnectedTimestamp(vector<string> riders, vector<string> logs)
{
int components = riders.size();
DSU dsu(components);
for(auto it : logs)
{
stringstream ss(it);
}
return 0;
}
int main() {
// your code goes here
vector<string> riders = {
"Alice",
"Bob",
"Charlie",
"Dan",
"Eve"
};
vector<string> logs = {
"1670000001 Alice shared-ride-with Bob",
"1670000042 Charlie shared-ride-with Dan",
"1670000450 Bob shared-ride-with Charlie",
"1670000501 Alice shared-ride-with Eve",
"1670000621 Bob shared-ride-with Dan"
};
cout << earliestConnectedTimestamp(riders, logs) << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY2xhc3MgRFNVCnsKcHVibGljIDoKCWludCBuOwoJdmVjdG9yPGludD4gc3o7Cgl2ZWN0b3I8aW50PiBwYXJlbnQ7CglEU1UgKGludCBudW0pCgl7CgkJbj0gbnVtOwoJCXN6LnJlc2l6ZShudW0rMSwxKTsKCQlwYXJlbnQucmVzaXplKG51bSsxLDEpOwoJCWZvcihpbnQgaT0wO2k8PW51bTtpKyspCgkJewoJCQlwYXJlbnRbaV09aTsKCQl9Cgl9CgkKCWludCBmaW5kUGFyZW50IChpbnQgeCkKCXsKCQlpZih4PT1wYXJlbnRbeF0pCgkJcmV0dXJuIHg7CgkJZWxzZQoJCXsKCQkJcmV0dXJuIHBhcmVudFt4XT0gZmluZFBhcmVudChwYXJlbnRbeF0pOwoJCX0KCX0KCXZvaWQgdW5pdGUoaW50IHgsaW50IHkpCgl7CgkJaW50IHBhcmVudFggPSBwYXJlbnRbeF07CgkJaW50IHBhcmVudFkgPSBwYXJlbnRbeV07CgkJaWYoc3pbcGFyZW50WF0gPiBzeiBbcGFyZW50WV0pCgkJewoJCQlwYXJlbnRbcGFyZW50WV09IHBhcmVudFg7CgkJCXN6W3BhcmVudFhdID0gc3pbcGFyZW50WF0gKyBzeltwYXJlbnRZXTsKCQl9CgkJZWxzZQoJCXsKCQkJcGFyZW50W3BhcmVudFhdPSBwYXJlbnRZOwoJCQlzeltwYXJlbnRZXSA9IHN6W3BhcmVudFldICsgc3pbcGFyZW50WF07CgkJfQoJfQp9OwoKaW50IGVhcmxpZXN0Q29ubmVjdGVkVGltZXN0YW1wKHZlY3RvcjxzdHJpbmc+IHJpZGVycywgIHZlY3RvcjxzdHJpbmc+IGxvZ3MpCgp7CglpbnQgY29tcG9uZW50cyA9IHJpZGVycy5zaXplKCk7CglEU1UgZHN1KGNvbXBvbmVudHMpOwoJZm9yKGF1dG8gaXQgOiBsb2dzKQoJewoJCXN0cmluZ3N0cmVhbSBzcyhpdCk7Cgl9CglyZXR1cm4gMDsKfQoKaW50IG1haW4oKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCgl2ZWN0b3I8c3RyaW5nPiByaWRlcnMgPSB7CiAgICAgICAgIkFsaWNlIiwKICAgICAgICAiQm9iIiwKICAgICAgICAiQ2hhcmxpZSIsCiAgICAgICAgIkRhbiIsCiAgICAgICAgIkV2ZSIKICAgIH07CgogICAgdmVjdG9yPHN0cmluZz4gbG9ncyA9IHsKICAgICAgICAiMTY3MDAwMDAwMSBBbGljZSBzaGFyZWQtcmlkZS13aXRoIEJvYiIsCiAgICAgICAgIjE2NzAwMDAwNDIgQ2hhcmxpZSBzaGFyZWQtcmlkZS13aXRoIERhbiIsCiAgICAgICAgIjE2NzAwMDA0NTAgQm9iIHNoYXJlZC1yaWRlLXdpdGggQ2hhcmxpZSIsCiAgICAgICAgIjE2NzAwMDA1MDEgQWxpY2Ugc2hhcmVkLXJpZGUtd2l0aCBFdmUiLAogICAgICAgICIxNjcwMDAwNjIxIEJvYiBzaGFyZWQtcmlkZS13aXRoIERhbiIKICAgIH07CgogICAgY291dCA8PCBlYXJsaWVzdENvbm5lY3RlZFRpbWVzdGFtcChyaWRlcnMsIGxvZ3MpIDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0=