제출 #827039

#제출 시각아이디문제언어결과실행 시간메모리
827039vjudge1Split the Attractions (IOI19_split)C++17
7 / 100
534 ms1048576 KiB
#include<bits/stdc++.h>
#include "split.h"

using namespace std;

#define all(x) x.begin(), x.end()
#define pb push_back
#define ll long long
#define vout(v) for(int i=0; i<v.size(); i++) cout<<v[i]<<' '
#define pii pair<int, int>
#define ff first
#define ss second
#define mp make_pair
    
vector<int> q[200100];
int sz[200100];
int res[200100], p[200100];

void dfs1(int v){
	sz[v] = 1;
	for(int i=0; i<q[v].size(); i++){
		int to = q[v][i];
		if(to == p[v]) continue;
		p[to] = v;
		dfs1(to);
		sz[v] += sz[to];
	}	
}

int dfs2(int v, int x, int c){
	res[v] = c;
	//cout<<v<<'\n';
	x--;
	for(int i=0; i<q[v].size() and x != 0; i++){
		int to = q[v].size();
		if(p[v] == to) continue;
		p[to] = v;
		x = dfs2(to, x, c);
	}
	return x;
}

vector<int> find_split(int n, int A, int B, int C, vector<int> LL, vector<int> RR){
	int m = LL.size();
	if(m == n) m--;
	for(int i=0; i<m; i++){
		q[LL[i] + 1].pb(RR[i] + 1);
		q[RR[i] + 1].pb(LL[i] + 1);
	}
	
	int st = 0;
	for(int i=1; i<=n; i++){
		if(q[i].size() == 1){
			st = i;
		}
	}   
	p[st] = 0;
	dfs1(st);
	vector<int> ans(n);
	for(int i=1; i<=n; i++){
		//cout<<sz[i]<<'\n';
		if(sz[i] <= A){
			ans[i-1] = 1;
		}
		else if(sz[i] <= A + B){
			ans[i-1] = 2;
		}
		else{
			ans[i-1]=3; 
		}
	}	
	return ans;
}




                 




컴파일 시 표준 에러 (stderr) 메시지

split.cpp: In function 'void dfs1(int)':
split.cpp:21:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   21 |  for(int i=0; i<q[v].size(); i++){
      |               ~^~~~~~~~~~~~
split.cpp: In function 'int dfs2(int, int, int)':
split.cpp:34:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   34 |  for(int i=0; i<q[v].size() and x != 0; 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...