제출 #105938

#제출 시각아이디문제언어결과실행 시간메모리
105938tincamatei열대 식물원 (Tropical Garden) (IOI11_garden)C++14
49 / 100
5027 ms9336 KiB
#include "garden.h"
#include "gardenlib.h"
#include <bits/stdc++.h>

using namespace std;

const int MAX_N = 150000;
const int MAX_M = 150000;

struct Edge {
	int a, b;

	inline int other(int x) {
		return a ^ b ^ x;
	}
} edges[MAX_M];

vector<int> graph[MAX_N];
vector<int> realgraph[MAX_N];

int rushnode(int nod, int x, int lastedge) {
	if(x == 0)
		return nod;
	for(auto it: realgraph[nod])
		if(it != lastedge)
			return rushnode(edges[it].other(nod), x - 1, it);
	return rushnode(edges[realgraph[nod][0]].other(nod), x - 1, realgraph[nod][0]);
}

void count_routes(int N, int M, int P, int R[][2], int Q, int G[]) {
  int i;
	
	for(int i = 0; i < M; ++i) {
		edges[i] = {R[i][0], R[i][1]};
		graph[R[i][0]].push_back(i);
		graph[R[i][1]].push_back(i);
	}

	for(int i = 0; i < N; ++i) {
		sort(graph[i].begin(), graph[i].end());
		for(int j = 0; j < 2 && j < graph[i].size(); ++j)
			realgraph[i].push_back(graph[i][j]);
	}
	
	int rez = 0;
	for(int i = 0; i < N; ++i)
		if(rushnode(i, G[0], -1) == P)
			++rez;
  for(i=0; i<Q; i++)
    answer(rez);
}

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

garden.cpp: In function 'void count_routes(int, int, int, int (*)[2], int, int*)':
garden.cpp:41:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int j = 0; j < 2 && j < graph[i].size(); ++j)
                           ~~^~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...