답안 #1080200

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1080200 2024-08-29T07:58:34 Z Tozzyyyy 도서관 (JOI18_library) C++14
컴파일 오류
0 ms 0 KB
#include <cstdio>
#include <vector>
#include "library.h"
#include <bits/stdc++.h>
using namespace std;

const int MAXN = 2000;
vector<int> adj[MAXN];
vector<int> res;
int vs[MAXN];
void dfs(int u){
	vs[u] = 1;
	res.push_back(u);
	for(auto x : adj[u]) if(vs[x] == 0) dfs(x);
}
void Solve(int n)
{
	int lst = -1;
	int cur = 1;	
	int cnt = 0;
	while(cnt < n - 1){
		vector<int> t;
		for(int j = 1 ; j <= n ; j++){
			if(cur == j or j == lst) continue;
			t.push_back(j);
		}

		int l = 0 , r = t.size()-1;
		int res = -1;
		while(l <= r){
			int mid = l + r  >> 1;
			vector<int> m(n);
			for(int j = l ; j <=mid ; j++) m[t[j] - 1] = 1;
			int c1 = Query(m);
			m[cur-1] = 1;
			int c2 = Query(m);
			if(c2 <= c1) res = mid , r = mid-1;
			else l = mid+1;
		}
		if(res == -1){
			cur = 1;
			lst = adj[1][0];
		}else{
			res = t[res];
			adj[cur].push_back(res);
			adj[res].push_back(cur);
			lst = cur , cur = res, cnt++;
		}

	}
	
	int mn = inf;
	for(int i = 1; i <= n ; i++){
		mn = min(mn , adj[i].size());
		if(adj[i].size() == 1){
			dfs(i);
			break;
		}
	}
	assert(mn == 1);
	Answer(res);
}

Compilation message

library.cpp: In function 'void Solve(int)':
library.cpp:31:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   31 |    int mid = l + r  >> 1;
      |              ~~^~~
library.cpp:52:11: error: 'inf' was not declared in this scope; did you mean 'ynf'?
   52 |  int mn = inf;
      |           ^~~
      |           ynf
library.cpp:54:30: error: no matching function for call to 'min(int&, std::vector<int>::size_type)'
   54 |   mn = min(mn , adj[i].size());
      |                              ^
In file included from /usr/include/c++/10/vector:60,
                 from library.cpp:2:
/usr/include/c++/10/bits/stl_algobase.h:230:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&)'
  230 |     min(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:230:5: note:   template argument deduction/substitution failed:
library.cpp:54:30: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'std::vector<int>::size_type' {aka 'long unsigned int'})
   54 |   mn = min(mn , adj[i].size());
      |                              ^
In file included from /usr/include/c++/10/vector:60,
                 from library.cpp:2:
/usr/include/c++/10/bits/stl_algobase.h:278:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare)'
  278 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:278:5: note:   template argument deduction/substitution failed:
library.cpp:54:30: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'std::vector<int>::size_type' {aka 'long unsigned int'})
   54 |   mn = min(mn , adj[i].size());
      |                              ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from library.cpp:4:
/usr/include/c++/10/bits/stl_algo.h:3468:5: note: candidate: 'template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>)'
 3468 |     min(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3468:5: note:   template argument deduction/substitution failed:
library.cpp:54:30: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
   54 |   mn = min(mn , adj[i].size());
      |                              ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from library.cpp:4:
/usr/include/c++/10/bits/stl_algo.h:3474:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare)'
 3474 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3474:5: note:   template argument deduction/substitution failed:
library.cpp:54:30: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
   54 |   mn = min(mn , adj[i].size());
      |                              ^