Submission #832841

#TimeUsernameProblemLanguageResultExecution timeMemory
832841HorizonWestSplit the Attractions (IOI19_split)C++17
0 / 100
1 ms212 KiB
#include <bits/stdc++.h>
using namespace std;

vector <vector<int>> v;
vector <int> g, ans, pass;

void dfs(int node, int cont, int group)
{
    ans[node] = group; cont++;
    if(cont == g[group])
    {
        cont = 0;
        group++;
        if(group == 3) return;
    }
    pass[node] = 1;
    for(auto& u : v[node])
    {
        if(!pass[u]) dfs(u, cont, group);
    }

    return;
}

vector<int> find_split(int n, int a, int b, int c, vector<int> p, vector<int> q)
{
    int m = p.size(); ans.assign(n, 3); pass.assign(n, 0);

    v.assign(n + 1, vector <int> ());
    vector <bool> subtask(5, 1);

    for(int i = 0; i < m; i++)
    {
        v[p[i]].push_back(q[i]);
        v[q[i]].push_back(p[i]);

        if(v[p[i]].size() > 2) subtask[0] = false;
        if(v[q[i]].size() > 2) subtask[0] = false;
    }

    //if(subtask[0])
    //{
        g.assign(4, 0); g[1] = a; g[2] = b; g[3] = c;
        dfs(0, 0, 1);
        return ans;
   // }

	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...