제출 #1229979

#제출 시각아이디문제언어결과실행 시간메모리
1229979ansoriThe Potion of Great Power (CEOI20_potion)C++17
컴파일 에러
0 ms0 KiB
#include<bits/stdc++.h>
using namespace std;
const int BL = 2000 ,  NN = 2e3 + 2;
vector<int> a , b , h;
vector<int> g[NN / BL + 2][NN];
set<int> gg[NN];
int n , d;
void init(int N, int D, int H[]) {
	h = vector<int> (N , 0);
	n = N , d = D;
	for(int i = 0;i < n; ++ i) h[i] = H[i];
}

void curseChanges(int U, int A[], int B[]) {
	for(int i = 0;i < U; ++ i){
		if(A[i] > B[i]) swap(A[i] , B[i]);
		a.push_back(A[i]);
		b.push_back(B[i]);
		if(gg[a[i]].find(b[i]) == gg[a[i]].end()){
			gg[a[i]].insert(b[i]);
			gg[b[i]].insert(a[i]);
		}
		else{
			gg[a[i]].erase(b[i]);
			gg[b[i]].erase(a[i]);
		}
		if((i + 1) % BL == 0){
			for(int i = 0;i < n; ++ i){
				for(auto to : gg[i]){
					g[(i + 1) / BL][i].push_back(to);
				}
			}
		}
	}
}

int question(int x, int y, int v) {
	if(x > y) swap(x , y);
	v --;
	unordered_set<int> vx , vy;
	for(auto to : g[(v + 1) / BL][x]) vx.insert(to);
	for(auto to : g[(v + 1) / BL][x]) vy.insert(to);
	for(int i = (v + 1) / BL * BL;i <= v; ++ i){
		//cout << i << ' ';
		if(a[i] == x or b[i] == x){
			int f = a[i] + b[i] - x;
			if(! vx.count(f)) vx.insert(f);
			else vx.erase(f);
		}
		if(a[i] == y or b[i] == y){
			int f = a[i] + b[i] - y;
			if(! vy.count(f)) vy.insert(f);
			else vy.erase(f);
		}
	}
	vector<int> hx , hy;
	//cout << x << ' ' << y << ' ';
	for(auto to : vx){
		//cout << to << ' ';
		hx.push_back(h[to]);
	}
	for(auto to : vy){
		//cout << to << ' ';
		hy.push_back(h[to]);
	}
	if(hx.size() == 0 or hy.size() == 0) return 1000000000;
	sort(hx.begin() , hx.end());
	sort(hy.begin() , hy.end());
	int j = 0 , answ = 1e9;
	for(auto to : hx){
		while(j < hy.size() and hy[j] <= to) j ++;
		answ = min({answ , abs(to - hy[max(0 , j - 1)]) , abs(to - hy[min(hy.size() - 1 , j)])});
	}
    return answ;
}

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

potion.cpp: In function 'int question(int, int, int)':
potion.cpp:72:82: error: no matching function for call to 'min(std::vector<int>::size_type, int&)'
   72 |                 answ = min({answ , abs(to - hy[max(0 , j - 1)]) , abs(to - hy[min(hy.size() - 1 , j)])});
      |                                                                               ~~~^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/bits/specfun.h:45,
                 from /usr/include/c++/11/cmath:1935,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:41,
                 from potion.cpp:1:
/usr/include/c++/11/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++/11/bits/stl_algobase.h:230:5: note:   template argument deduction/substitution failed:
potion.cpp:72:82: note:   deduced conflicting types for parameter 'const _Tp' ('long unsigned int' and 'int')
   72 |                 answ = min({answ , abs(to - hy[max(0 , j - 1)]) , abs(to - hy[min(hy.size() - 1 , j)])});
      |                                                                               ~~~^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/bits/specfun.h:45,
                 from /usr/include/c++/11/cmath:1935,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:41,
                 from potion.cpp:1:
/usr/include/c++/11/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++/11/bits/stl_algobase.h:278:5: note:   template argument deduction/substitution failed:
potion.cpp:72:82: note:   deduced conflicting types for parameter 'const _Tp' ('long unsigned int' and 'int')
   72 |                 answ = min({answ , abs(to - hy[max(0 , j - 1)]) , abs(to - hy[min(hy.size() - 1 , j)])});
      |                                                                               ~~~^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:65,
                 from potion.cpp:1:
/usr/include/c++/11/bits/stl_algo.h:3449:5: note: candidate: 'template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>)'
 3449 |     min(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/11/bits/stl_algo.h:3449:5: note:   template argument deduction/substitution failed:
potion.cpp:72:82: note:   mismatched types 'std::initializer_list<_Tp>' and 'long unsigned int'
   72 |                 answ = min({answ , abs(to - hy[max(0 , j - 1)]) , abs(to - hy[min(hy.size() - 1 , j)])});
      |                                                                               ~~~^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:65,
                 from potion.cpp:1:
/usr/include/c++/11/bits/stl_algo.h:3455:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare)'
 3455 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/11/bits/stl_algo.h:3455:5: note:   template argument deduction/substitution failed:
potion.cpp:72:82: note:   mismatched types 'std::initializer_list<_Tp>' and 'long unsigned int'
   72 |                 answ = min({answ , abs(to - hy[max(0 , j - 1)]) , abs(to - hy[min(hy.size() - 1 , j)])});
      |                                                                               ~~~^~~~~~~~~~~~~~~~~~~
potion.cpp:72:27: error: no matching function for call to 'min(<brace-enclosed initializer list>)'
   72 |                 answ = min({answ , abs(to - hy[max(0 , j - 1)]) , abs(to - hy[min(hy.size() - 1 , j)])});
      |                        ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/bits/specfun.h:45,
                 from /usr/include/c++/11/cmath:1935,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:41,
                 from potion.cpp:1:
/usr/include/c++/11/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++/11/bits/stl_algobase.h:230:5: note:   template argument deduction/substitution failed:
potion.cpp:72:27: note:   candidate expects 2 arguments, 1 provided
   72 |                 answ = min({answ , abs(to - hy[max(0 , j - 1)]) , abs(to - hy[min(hy.size() - 1 , j)])});
      |                        ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/bits/specfun.h:45,
                 from /usr/include/c++/11/cmath:1935,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:41,
                 from potion.cpp:1:
/usr/include/c++/11/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++/11/bits/stl_algobase.h:278:5: note:   template argument deduction/substitution failed:
potion.cpp:72:27: note:   candidate expects 3 arguments, 1 provided
   72 |                 answ = min({answ , abs(to - hy[max(0 , j - 1)]) , abs(to - hy[min(hy.size() - 1 , j)])});
      |                        ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:65,
                 from potion.cpp:1:
/usr/include/c++/11/bits/stl_algo.h:3449:5: note: candidate: 'template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>)'
 3449 |     min(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/11/bits/stl_algo.h:3449:5: note:   template argument deduction/substitution failed:
/usr/include/c++/11/bits/stl_algo.h:3455:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare)'
 3455 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/11/bits/stl_algo.h:3455:5: note:   template argument deduction/substitution failed: