Submission #1081379

#TimeUsernameProblemLanguageResultExecution timeMemory
1081379thelegendary08The Ties That Guide Us (CEOI23_incursion)C++17
12 / 100
270 ms7916 KiB
#include <bits/stdc++.h>
#include "incursion.h"
#define f0r(i,n) for(int i = 0;i<n;i++)
#define vi vector<int>
using namespace std;

std::vector<int> mark(std::vector<std::pair<int, int>> F, int safe) {
    safe--;
	int n;
	n = F.size() + 1;
	vector<int>dist(n);
	dist[safe] = 0;
	vector<int>adj[n];
	f0r(i, n-1){
		adj[--F[i].first].push_back(--F[i].second);
		adj[F[i].second].push_back(F[i].first);
	}
	queue<int>q;
	q.push(safe);
	vector<bool>vis(n,0);
	vis[safe] = 1;
	vi col(n);
	col[safe] = 0;
	while(!q.empty()){
		int cur = q.front();
		q.pop();
		for(auto u : adj[cur]){
			if(vis[u])continue;
			vis[u] = 1;
			dist[u] = dist[cur] + 1;
			col[u] = (col[cur] + 1) % 3;
			q.push(u);
		}
	}

  	return col;
}

void locate(std::vector<std::pair<int, int>> F, int curr, int t) {
	int x;
	vector<int>nxt = {2, 0, 1};
	int n = F.size() + 1;
	vector<bool>vis(n+1, 0);
	vector<int>adj[n+1];
	f0r(i, n-1){
		adj[F[i].first].push_back(F[i].second);
		adj[F[i].second].push_back(F[i].first);
	}
	vis[curr] = 1;
	//queue<int>q;
	//q.push(curr);
	bool found = false;
	int col = t;
	int cur = curr;
	vi cols(n+1, -1);
	cols[curr] = t;
	while(!found){
		bool ok = 0;
		for(auto u : adj[cur]){
			if(vis[u])continue;
			vis[u] = 1;
			x = visit(u);
			cols[u] = x;
			if(x == nxt[cols[cur]]){
				cur = u;
				ok = 1;
				break;
			}
			else{
				visit(cur);
			}
		}
		if(!ok)return;
	}


}

Compilation message (stderr)

incursion.cpp: In function 'void locate(std::vector<std::pair<int, int> >, int, int)':
incursion.cpp:53:6: warning: unused variable 'col' [-Wunused-variable]
   53 |  int col = t;
      |      ^~~
interface.cpp: In function 'int main()':
interface.cpp:44:55: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   44 |     if(fread(T.data(), sizeof(int), 2 * N - 2, stdin) != 2 * N - 2) exit(0);
      |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
interface.cpp:50:33: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   50 |         int l = (numbers.size() == N ? N : 0);
      |                  ~~~~~~~~~~~~~~~^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...