Submission #428245

#TimeUsernameProblemLanguageResultExecution timeMemory
428245A_DSplit the Attractions (IOI19_split)C++14
11 / 100
117 ms10632 KiB
#include "split.h"
#include <bits/stdc++.h>
using namespace std;
const int N=1e5+100;
vector<int> g[N];
bool vis[N];
vector<int> ret;
int a,b,c;
void dfs(int u)
{
    if(b==0)return;
    b--;
    vis[u]=1;
    for(auto x:g[u]){
        if(b==0)return;
        if(vis[x])continue;
        dfs(x);
    }
}
vector<int> find_split(int n,int A,int B,int C,vector<int> p,vector<int> q){
    a=A;
    b=B;
    c=C;
    for(int i=0;i<p.size();i++){
        g[p[i]].push_back(q[i]);
        g[q[i]].push_back(p[i]);
    }
    dfs(0);
    for(int i=0;i<n;i++){
        if(vis[i])ret.push_back(2);
        else if(a){
            a--;
            ret.push_back(1);
        }
        else ret.push_back(3);
    }
    return ret;
}

Compilation message (stderr)

split.cpp: In function 'std::vector<int> find_split(int, int, int, int, std::vector<int>, std::vector<int>)':
split.cpp:24:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   24 |     for(int i=0;i<p.size();i++){
      |                 ~^~~~~~~~~
#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...