제출 #1290697

#제출 시각아이디문제언어결과실행 시간메모리
1290697lucasdmySplit the Attractions (IOI19_split)C++20
7 / 100
46 ms16568 KiB
#include "split.h"
#include <bits/stdc++.h>
using namespace std;
const int MAXN=1e5+10, MAXM=2e5+10;
vector<int>v[MAXN], ord, marc(MAXN);
void dfs(int x){
    marc[x]=1;
    ord.push_back(x);
    for(int k=0;k<v[x].size();k++){
        if(marc[v[x][k]]==0){
            dfs(v[x][k]);
        }
    }
}
vector<int> find_split(int n, int a, int b, int c, vector<int>n1, vector<int>n2){
    int m=n1.size();
    vector<int>resp(n);
    for(int k=0;k<m;k++){
        v[n1[k]].push_back(n2[k]);
        v[n2[k]].push_back(n1[k]);
    }
    dfs(0);
    for(int k=0;k<a;k++){
        resp[ord[k]]=1;
    }
    for(int k=a;k<a+b;k++){
        resp[ord[k]]=2;
    }
    for(int k=a+b;k<n;k++){
        resp[ord[k]]=3;
    }
    return resp;
}
/*int main()
{
    int n, m, a, b, c;
    cin>>n>>m>>a>>b>>c;
    vector<int>n1(m), n2(m);
    for(int k=0;k<m;k++){
        cin>>n1[k];
    }
    for(int k=0;k<m;k++){
        cin>>n2[k];
    }
    vector<int>resp=find_split(n, a, b, c, n1, n2);
    for(int k=0;k<n;k++){
        cout<<resp[k]<<' ';
    }
    return 0;
}*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...