Submission #428211

#TimeUsernameProblemLanguageResultExecution timeMemory
428211A_DSplit the Attractions (IOI19_split)C++14
0 / 100
642 ms1048580 KiB
#include "split.h"
#include <bits/stdc++.h>
using namespace std;
const int N=1e5+100;
vector<int> g[N];
vector<int> ret;
int a,b,c;
void dfs(int u,int p)
{
    if(a!=0){
        a--;
        ret[u]=1;
    }
    else if(b!=0){
        b--;
        ret[u]=2;
    }
    else{
        ret[u]=3;
    }
    for(auto x:g[u]){
        if(x==p)continue;
        dfs(x,u);
    }
}
vector<int> find_split(int n,int A,int B,int C,vector<int> p,vector<int> q){
    ret.resize(n);
    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]);
	}
	for(int i=0;i<n;i++){
        if(g[i].size()==1){
            dfs(i,i);
            break;
        }
	}
	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:31:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   31 |  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...