Skip to main content

[ UVa ] 793 - Network Connections

/**
* Problem : 793 - Network Connections
* Verdict : Accepted.
* Write : Mehadi Hasan Menon.
* Date : 28.12.16.
**/
#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
using namespace std;
vector <int> par;
void make_set(int n)
{
par.assign(n + 1, 0);
// at the initial stage every node is
// representative of itself.
for(int i = 1; i <= n; i++) {
par[i] = i;
}
}
int find_par(int r)
{
// If a node is parent of itself
// then it's the representative of the entire set.
if(par[r] == r) {
return r;
}
// otherwise search for representative of the set.
par[r] = find_par(par[r]);
return par[r];
}
void union_ab(int a, int b)
{
// find parent of a and b.
int u = find_par(a);
int v = find_par(b);
// set u as parent of v.
if(u != v) {
par[v] = u;
}
}
bool is_compters_connected(int a, int b)
{
int u = find_par(a);
int v = find_par(b);
// if both parent is same then they are connected
// otherwise not.
if(u == v) {
return true;
}
else {
return false;
}
}
int main()
{
freopen("input.txt", "r+", stdin);
int tc, computers, a, b, connected, disconnected;
char command; char line[100];
scanf("%d\n", &tc);
for(int t = 0; t < tc; t++)
{
scanf("%d", &computers);
getchar();
make_set(computers);
connected = disconnected = 0;
while(true)
{
gets(line);
if(strcmp(line, "") == 0 || feof(stdin)) {
break;
}
sscanf(line, "%c %d %d",&command, &a, &b);
if(command == 'c') {
union_ab(a, b);
}
else if(command == 'q')
{
if(is_compters_connected(a, b)) {
connected += 1;
}
else {
disconnected += 1;
}
}
}
if(t > 0) {
printf("\n");
}
printf("%d,%d\n", connected, disconnected);
}
return 0;
}
view raw 793.cpp hosted with ❤ by GitHub

Comments

Popular posts from this blog

উবুন্টুতে রুট পাসওয়ার্ড ভুলে তা রিকভার করার উপায় ।

যদি কেউ রুট পাসওয়ার্ড ভুলে যান তাহলে নিচের কাজ গুলো করে নতুন পাসওয়ার্ড সেট করতে পারবেন: প্রথমে পিসি রিস্টার্ট দিন । দিয়ে UP/DOWN করে kernel version সিলেক্ট করে e চাপুন । ব্ল্যাক Screen আসবে এবার একটা Space দিয়ে লিখুন “Single” [ Enter ] এরপর b চাপুন ফলাফল : লিনাক্সের Single user Mood এ চলে আসছেন । এখন লিখুন passwd root [ Enter ] এখন নতুন পাসওয়ার্ড খানা টাইপ করেন [ এন্টার ] আবার টাইপ করেন [ এন্টার ] কাজ শেষ , এবার reboot টাইপ করেন । এখন নতুন পাসওয়ার্ড দিয়ে লগইন করেন। পুনশ্চ : যদি আপনার উইন্ডোজ এর সাথে ডুয়েল বুট করা থাকে তবে এই প্রক্রিয়া কাজ করবে না ।

Fix The BIOS in this system is not fully ACPI compliant in Windows 7

এই সমস্যা সমাধান করার জন্য আপনি নিচের ধাপ গুলো অনুসরণ করুন। ধাপ ১ :  আপানর  কম্পিউটার এ উইন্ডোজ এর ডিস্ক থেকে বুট করুন । নীচের মত উইন্ডো আসলে Shift + F10 চাপুন । এর ফলে কমান্ড প্রম্প্ট ওপেন হবে। ধাপ ২ : এখন CMD তে নিচের কমান্ড গুলি ধারবাহিক ভাবে লিখুন C: bootrec /FixMbr bootrec /FixBoot bootrec /RebuildBcd exit  এখানে  C হলো যে ড্রাইভ এ উইন্ডোজ দেয়া আছে।  আপনার যদি অন্য কোনো ড্রাইভ ( D, E, F, ..... ) এ উইন্ডোজ দেয়া থাকে তবে আপনাকে C এর জায়গায় সেই ড্রাইভ এর নাম লিখতে হবে।  উপরের সব কমান্ড যদি সঠিক ভাবে বিল্ড হয় তবে আপনি আপনার কম্পিউটার রিস্টার্ট দিন।  দেখবেন আপনার সমস্যা সমাধান হয়ে গেছে :D