Submission #522678

# Submission time Handle Problem Language Result Execution time Memory
522678 2022-02-05T11:32:35 Z lucri Sightseeing (NOI14_sightseeing) C++17
4 / 25
1549 ms 145844 KB
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
long long n,m,q,x,y,c,ans[500010],t[500010];
vector<pair<long long,pair<long long,long long>>>a;
vector<vector<int>>f;
bool ok[500010];
int tata(int x)
{
    if(x==t[x]) return t[x];
    t[x]=tata(t[x]);
    return t[x];
}
void atribuire(int nod)
{
    ans[nod]=ans[1];
    for(auto z:f[nod])
    {
        if(ok[z]==false)
        {
            ok[z]=true;
            atribuire(z);
        }
    }
    return;
}
void combinare(int x,int y,int c)
{
    if(tata(x)==1&&tata(y)!=1)
    {
        f[1].push_back(t[y]);
        t[t[y]]=1;
        ans[1]=c;
        if(t[y]!=1)
            atribuire(t[y]);
        else
            atribuire(y);
        return;
    }
    swap(x,y);
    if(tata(x)==1&&tata(y)!=1)
    {
        f[1].push_back(t[y]);
        t[t[y]]=1;
        ans[1]=c;
        if(t[y]!=1)
            atribuire(t[y]);
        else
            atribuire(y);
        return;
    }
    t[x]=t[y];
    f[t[x]].push_back(x);
    return;
}
int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    cin>>n>>m>>q;
    a.resize(n+5);
    f.resize(n+5);
    for(long long i=1;i<=m;++i)
    {
        cin>>x>>y>>c;
        a.push_back(make_pair(-c,make_pair(x,y)));
    }
    for(int i=1;i<=n;++i)
        t[i]=i;
    sort(a.begin(),a.end());
    for(int i=0;i<m;++i)
    {
        combinare(a[i].second.first,a[i].second.second,-a[i].first);
    }
    for(long long i=1;i<=q;++i)
    {
        cin>>x;
        cout<<ans[x]<<'\n';
    }
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 588 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 37 ms 4504 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1549 ms 145844 KB Output isn't correct
2 Halted 0 ms 0 KB -