제출 #1236354

#제출 시각아이디문제언어결과실행 시간메모리
1236354marizaSplit the Attractions (IOI19_split)C++20
18 / 100
60 ms13256 KiB
#include "split.h"
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
const ll N=1e5;

vector<ll> g[N];
vector<ll> s;
bool vis[N]={};
void dfs(ll curr){
    if(vis[curr]) return;
    vis[curr]=1;
    s.push_back(curr);

    for(auto nxt:g[curr]){
        dfs(nxt);
    }
}

vector<int> find_split(int n, int a, int b, int c, vector<int> p, vector<int> q) {
	ll m=p.size();
    for(ll i=0; i<m; i++){
        g[p[i]].push_back(q[i]);
        g[q[i]].push_back(p[i]);
    }

    for(ll i=0; i<n; i++){
        if(g[i].size()==1){
            dfs(i);
            break;
        }
    }
    if(s.empty()) dfs(0);

    vector<int> ans(n,3);
    for(ll i=0; i<a; i++){
        ans[s[i]]=1;
    }
    for(ll i=a; i<a+b; i++){
        ans[s[i]]=2;
    }

    return ans;
}
#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...