제출 #422737

#제출 시각아이디문제언어결과실행 시간메모리
422737schse장난감 기차 (IOI17_train)C++17
5 / 100
10 ms1368 KiB
#include "train.h"
#ifndef EVAL
#include "grader.cpp"
#endif

#include <bits/stdc++.h>
using namespace std;

struct node
{
	vector<int> edges;
	bool been;
	bool charging = false;
	bool owner;
	bool winningpos = false;
};

vector<node> g;

bool rec(int n)
{
	auto &[edges,
		   been,
		   charging,
		   owner,
		   winningpos] = g[n];
	if (been)
		return winningpos;
	been = true;
	if (edges.size() == 0)
		return winningpos = charging;
	return winningpos = rec(edges[0]);
}

vector<int> who_wins(vector<int> a, vector<int> r, vector<int> u, vector<int> v)
{
	std::vector<int> res(a.size());
	g.resize(a.size());
	for (int i = 0; i < a.size(); i++)
	{
		g[i].owner = a[i];
		g[i].charging = r[i];
	}
	for (int i = 0; i < u.size(); i++)
	{
		if (g[u[i]].owner && g[u[i]].charging && u[i] == v[i])
			g[v[i]].winningpos = true,
			g[v[i]].been = true;
		else if (!g[u[i]].owner && !g[u[i]].charging && u[i] == v[i])
			g[v[i]].winningpos = false,
			g[v[i]].been = true;
		else if (u[i] == v[i])
		{
		}
		else
			g[u[i]].edges.push_back(v[i]);
	}

	for (int i = 0; i < (int)a.size(); i++)
		res[i] = rec(i);
	return res;
}

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

train.cpp: In function 'std::vector<int> who_wins(std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
train.cpp:39:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   39 |  for (int i = 0; i < a.size(); i++)
      |                  ~~^~~~~~~~~~
train.cpp:44:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   44 |  for (int i = 0; i < u.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...
#Verdict Execution timeMemoryGrader output
Fetching results...