Submission #1021276

#TimeUsernameProblemLanguageResultExecution timeMemory
1021276vjudge1Split the Attractions (IOI19_split)C++17
18 / 100
54 ms15360 KiB
#include "split.h"
#include <bits/stdc++.h>
#define ll long long
#define mid ((l+r)>>1)
#define pii pair<int,int>
#define fi first
#define se second
#define rep(a,b,c) for(int a=b; a<c; a++)
#define repr(a,b,c) for(int a=b-1; a>c-1; a--)
#define pb push_back
#define repa(a,b) for(auto a:b)

using namespace std;

const int lim=2e5+5;
vector<int> adj[lim];

vector<int> find_split(int n, int a, int b, int c, vector<int> p, vector<int> q) {
	vector<int> res(n,0), res2(n,0);
	queue<int> Q;
	rep(i,0,p.size()){
		adj[p[i]].pb(q[i]);
		adj[q[i]].pb(p[i]);
	}
	int d[3]={a,b,c}, u;
	bool vis[n]{};
	repr(j,3,0){
		rep(i,0,n){
			if(!vis[i]){
				Q.push(i);
				while(Q.size()){
					u=Q.front();
					Q.pop();
					if(vis[u]) continue;
					vis[u]=true;
					res[u]=j+1;
					d[j]--;
					if(!d[j]) break;
					repa(v,adj[u]) if(!vis[v]) Q.push(v);
				}
				while(Q.size()) Q.pop();
			}
			if(!d[j]) break;
		}
	}
	return res;
}

Compilation message (stderr)

split.cpp: In function 'std::vector<int> find_split(int, int, int, int, std::vector<int>, std::vector<int>)':
split.cpp:8:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    8 | #define rep(a,b,c) for(int a=b; a<c; a++)
......
   21 |  rep(i,0,p.size()){
      |      ~~~~~~~~~~~~                 
split.cpp:21:2: note: in expansion of macro 'rep'
   21 |  rep(i,0,p.size()){
      |  ^~~
#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...