제출 #590071

#제출 시각아이디문제언어결과실행 시간메모리
590071almothana05Stations (IOI20_stations)C++14
76 / 100
923 ms832 KiB
#include "stations.h"
#include <vector>
#include <bits/stdc++.h>
using namespace std;
vector<int> gr[2000] , num , de ;
int  vis[2000];
int pl = -1;
void dfs(int x , int cmp){
	de.push_back(x);
	vis[x] = 1;
	// cout << x << ' ' << cmp << "\n";
	pl++;
	if(cmp == 0){
		num[x] = pl;
	}
		// cout << 1 << ' ';
	for(int i = 0 ; i< gr[x].size() ; i++){
		int kind = gr[x][i];
		if(vis[kind] == 0){
			dfs(kind , cmp ^ 1);
		}
	}
	pl++;
	// assert(pl > 0);
	
	if(cmp == 1){
		num[x] = pl;
	}
	while(num[x] == -1);
}
vector<int> label(int menge, int maxi, vector<int> u, vector<int> v) {
	num.clear();
	de.clear();
	for(int i = 0 ; i < 1000 ; i++){
		gr[i].clear();
		vis[i] = 0;
	}
	pl = -1;
	num.resize(menge , -1);
	for(int i = 0 ; i < menge - 1 ; i++){
		gr[u[i]].push_back(v[i]);
		gr[v[i]].push_back(u[i]);
	}
	for(int i = 0 ; i < menge ; i++){
		if(vis[i] == 0){
			dfs(i , 0);
		}
		// while(num[i] == -1);
	}
	assert(de.size() == menge);
	for(int i = 0 ; i < menge ; i++){
		// cout << num[i] << ' ';
		// assert(num[i] >= 0);
	}
	// cout << "\n";
	return num;
}

int find_next_station(int s, int t, vector<int> c) {
	int be , en , erg = -1;
	if(s < c[0]){
		be = s;
		for(int i = 0 ; i < c.size() - 1 ; i++){
			en = c[i];
			if(be <= t && t <= en){
				return c[i];
			}
			be = c[i];
		}
		return c[c.size() - 1];
	}
	else{
		c.push_back(s);
		for(int i = 1 ; i < c.size() - 1 ; i++){
			be = c[i];
			en = c[i + 1] - 1;
			if(be <= t && t <= en){
				return c[i];
			}
		}
		return c[0];
	}
}

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

stations.cpp: In function 'void dfs(int, int)':
stations.cpp:17:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   17 |  for(int i = 0 ; i< gr[x].size() ; i++){
      |                  ~^~~~~~~~~~~~~~
In file included from /usr/include/c++/10/cassert:44,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:33,
                 from stations.cpp:3:
stations.cpp: In function 'std::vector<int> label(int, int, std::vector<int>, std::vector<int>)':
stations.cpp:50:19: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   50 |  assert(de.size() == menge);
      |         ~~~~~~~~~~^~~~~~~~
stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)':
stations.cpp:63:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   63 |   for(int i = 0 ; i < c.size() - 1 ; i++){
      |                   ~~^~~~~~~~~~~~~~
stations.cpp:74:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   74 |   for(int i = 1 ; i < c.size() - 1 ; i++){
      |                   ~~^~~~~~~~~~~~~~
stations.cpp:60:16: warning: unused variable 'erg' [-Wunused-variable]
   60 |  int be , en , erg = -1;
      |                ^~~
#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...