This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
// trenujsprostasarica.cpp : This file contains the 'main' function. Program execution begins and ends there.
//
// ejoiden2.cpp : This file contains the 'main' function. Program execution begins and ends there.
//
#include <iostream>
#include <vector>
#include <algorithm>
#include <set>
using namespace std;
vector<vector<int>>v;
//vector<int>dx = { -1,1,0,0 };
//vector<int>dy = { 0,0,-1,1 };
vector<int>otec;
vector<int>velkost;
int koren(int vr)
{
while (otec[vr] != vr)
{
vr = otec[vr];
}
return vr;
}
void merge(int a, int b)
{
a = koren(a);
b = koren(b);
if (a == b)
{
return;
}
if (velkost[a] < velkost[b])
{
swap(a, b);
}
otec[b] = a;
velkost[a] += velkost[b];
return;
}
bool suspojene(int a, int b)
{
a = koren(a);
b = koren(b);
if (a == b)
{
return true;
}
else
{
return false;
}
}
const int maxn = 500036;
set<int>s2[maxn];
int main()
{
int n;
cin >> n;
int m;
cin >> m;
v.resize(n);
velkost.resize(n, 1);
otec.resize(n);
for (int i = 0; i < n; i++)
{
otec[i] = i;
}
for (int i = 0; i < m; i++)
{
int a;
cin >> a;
int b;
cin >> b;
a -= 1;
b -= 1;
char typ;
cin >> typ;
if (typ == 'T')
{
merge(a, b);
}
else if (typ == 'A')
{
v[a].push_back(b);
v[b].push_back(a);
}
}
for (int i = 0; i < n; i++)
{
otec[i] = koren(i);
}
set<int>s;
for (int i = 0; i < n; i++)
{
s.insert(otec[i]);
}
for (int i = 0; i < n; i++)
{
s2[otec[i]].insert(otec[i]);
for (int j = 0; j < v[i].size(); j++)
{
s2[otec[i]].insert(otec[v[i][j]]);
}
}
int vys = 0;
for (int i = 0; i < n; i++)
{
if (s2[otec[i]].size() >= s.size())
{
vys += 1;
}
}
cout << vys << endl;
return 0;
//std::cout << "Hello World!\n";
}
// Run program: Ctrl + F5 or Debug > Start Without Debugging menu
// Debug program: F5 or Debug > Start Debugging menu
// Tips for Getting Started:
// 1. Use the Solution Explorer window to add/manage files
// 2. Use the Team Explorer window to connect to source control
// 3. Use the Output window to see build output and other messages
// 4. Use the Error List window to view errors
// 5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
// 6. In the future, to open this project again, go to File > Open > Project and select the .sln file
Compilation message (stderr)
menesinis_bilietas.cpp: In function 'int main()':
menesinis_bilietas.cpp:102:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
102 | for (int j = 0; j < v[i].size(); j++)
| ~~^~~~~~~~~~~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |