Pagini recente »
Atașamentele paginii Clasament sansa_ta
|
Monitorul de evaluare
|
OJI 2023 Clasa a VI-a - Antrenament - FFA v2.1
|
Monitorul de evaluare
|
Cod sursă (job #625726)
Cod sursă (job
#625726)
#include <fstream>
#include <vector>
#include <map>
using namespace std;
multimap <int, pair <int, int>> pam;
ifstream fin("zapada.in");
ofstream fout("zapada.out");
int n, m, k, i, j, x, y, z;
vector <int> viz;
int snow()
{
viz.resize(1);
viz.resize(n + 1);
int ct = 0;
map <int, pair <int, int>>::iterator it;
it = pam.begin();
ct = (*it).first;
x = (*it).second.first;
y = (*it).second.second;
viz[x] = viz[y] = 1;
for (int q = 2; q < n; ++q)
{
it = pam.begin();
while (viz[(*it).second.first] == viz[(*it).second.second]) it++;
if (viz[(*it).second.first])
viz[(*it).second.second] = 1;
else viz[(*it).second.first] = 1;
ct += (*it).first;
}
return ct;
}
int main()
{
fin >> n >> m >> k;
for (i = 1; i <= m; i++)
{
fin >> x >> y >> z;
pam.insert(make_pair(z, make_pair(x, y)));
}
fout << snow() << "\n";
for (i = 1; i <= k; i++)
{
fin >> x >> y >> z;
pam.insert(make_pair(z, make_pair(x, y)));
fout << snow() << "\n";
}
return 0;
}