답안 #133279

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
133279 2019-07-20T10:45:57 Z E869120 Olympiads (BOI19_olympiads) C++14
컴파일 오류
0 ms 0 KB
#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
#include <functional>
#include <map>
#include <unordered_map>
using namespace std;

int N, K, C, A[509][6];

struct Node {
	int a[6];
};

bool operator<(const Node &a1, const Node &a2) {
	for (int i = 0; i < K; i++) {
		if (a1.a[i] < a2.a[i]) return true;
		if (a1.a[i] > a2.a[i]) return false;
	}
	return false;
}

priority_queue<pair<int, Node>>Q;
unordered_map<Node, int> Map;

int calc(Node L) {
	int R[6] = { 0, 0, 0, 0, 0, 0 };
	for (int i = 0; i < K; i++) {
		for (int j = 0; j < K; j++) R[j] = max(R[j], A[L.a[i]][j]);
	}
	int sum = 0;
	for (int i = 0; i < K; i++) sum += R[i];
	return sum;
}

int main() {
	cin >> N >> K >> C;
	for (int i = 0; i < N; i++) {
		for (int j = 0; j < K; j++) A[i][j] = (i + j);
	}

	vector<int>E;
	for (int i = 0; i < K; i++) {
		int maxn = -1, maxid = -1;
		for (int j = 0; j < N; j++) {
			if (maxn < A[j][i]) { maxn = A[j][i]; maxid = j; }
		}
		E.push_back(maxid);
	}
	sort(E.begin(), E.end());
	E.erase(unique(E.begin(), E.end()), E.end());
	for (int i = 0; i < N; i++) {
		if (E.size() == K) break;
		E.push_back(i);
		sort(E.begin(), E.end());
		E.erase(unique(E.begin(), E.end()), E.end());
	}

	Node EE; for (int i = 0; i < K; i++) EE.a[i] = E[i];

	Q.push(make_pair(calc(EE), EE));
	Map[EE] = 1;

	int ret = 0;
	for (int i = 1; i <= C; i++) {
		Node F = Q.top().second;
		ret = Q.top().first; Q.pop();

		vector<int> D;
		for (int j = 0; j < N; j++) {
			bool flag = true;
			for (int k = 0; k < K; k++) {
				if (F.a[k] == j) flag = false;
			}
			if (flag == true) D.push_back(j);
		}

		for (int j = 0; j < K; j++) {
			for (int k : D) {
				Node G = F; G.a[j] = k;
				sort(G.a, G.a + K);
				if (Map[G] == 1) continue;

				Map[G] = 1;
				int Z = calc(G);
				Q.push(make_pair(Z, G));
			}
		}
	}
	cout << ret << endl;
	return 0;
}

Compilation message

In file included from /usr/include/c++/7/bits/hashtable.h:35:0,
                 from /usr/include/c++/7/unordered_map:47,
                 from olympiads.cpp:7:
/usr/include/c++/7/bits/hashtable_policy.h: In instantiation of 'struct std::__detail::__is_noexcept_hash<Node, std::hash<Node> >':
/usr/include/c++/7/type_traits:143:12:   required from 'struct std::__and_<std::__is_fast_hash<std::hash<Node> >, std::__detail::__is_noexcept_hash<Node, std::hash<Node> > >'
/usr/include/c++/7/type_traits:154:31:   required from 'struct std::__not_<std::__and_<std::__is_fast_hash<std::hash<Node> >, std::__detail::__is_noexcept_hash<Node, std::hash<Node> > > >'
/usr/include/c++/7/bits/unordered_map.h:103:66:   required from 'class std::unordered_map<Node, int>'
olympiads.cpp:25:26:   required from here
/usr/include/c++/7/bits/hashtable_policy.h:87:34: error: no match for call to '(const std::hash<Node>) (const Node&)'
  noexcept(declval<const _Hash&>()(declval<const _Key&>()))>
           ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/7/bits/move.h:54:0,
                 from /usr/include/c++/7/bits/nested_exception.h:40,
                 from /usr/include/c++/7/exception:143,
                 from /usr/include/c++/7/ios:39,
                 from /usr/include/c++/7/ostream:38,
                 from /usr/include/c++/7/iostream:39,
                 from olympiads.cpp:1:
/usr/include/c++/7/type_traits: In instantiation of 'struct std::__not_<std::__and_<std::__is_fast_hash<std::hash<Node> >, std::__detail::__is_noexcept_hash<Node, std::hash<Node> > > >':
/usr/include/c++/7/bits/unordered_map.h:103:66:   required from 'class std::unordered_map<Node, int>'
olympiads.cpp:25:26:   required from here
/usr/include/c++/7/type_traits:154:31: error: 'value' is not a member of 'std::__and_<std::__is_fast_hash<std::hash<Node> >, std::__detail::__is_noexcept_hash<Node, std::hash<Node> > >'
     : public __bool_constant<!bool(_Pp::value)>
                               ^~~~~~~~~~~~~~~~
In file included from /usr/include/c++/7/unordered_map:48:0,
                 from olympiads.cpp:7:
/usr/include/c++/7/bits/unordered_map.h: In instantiation of 'class std::unordered_map<Node, int>':
olympiads.cpp:25:26:   required from here
/usr/include/c++/7/bits/unordered_map.h:103:66: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<std::hash<Node> >, std::__detail::__is_noexcept_hash<Node, std::hash<Node> > > >'
       typedef __umap_hashtable<_Key, _Tp, _Hash, _Pred, _Alloc>  _Hashtable;
                                                                  ^~~~~~~~~~
/usr/include/c++/7/bits/unordered_map.h:110:45: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<std::hash<Node> >, std::__detail::__is_noexcept_hash<Node, std::hash<Node> > > >'
       typedef typename _Hashtable::key_type key_type;
                                             ^~~~~~~~
/usr/include/c++/7/bits/unordered_map.h:111:47: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<std::hash<Node> >, std::__detail::__is_noexcept_hash<Node, std::hash<Node> > > >'
       typedef typename _Hashtable::value_type value_type;
                                               ^~~~~~~~~~
/usr/include/c++/7/bits/unordered_map.h:112:48: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<std::hash<Node> >, std::__detail::__is_noexcept_hash<Node, std::hash<Node> > > >'
       typedef typename _Hashtable::mapped_type mapped_type;
                                                ^~~~~~~~~~~
/usr/include/c++/7/bits/unordered_map.h:113:43: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<std::hash<Node> >, std::__detail::__is_noexcept_hash<Node, std::hash<Node> > > >'
       typedef typename _Hashtable::hasher hasher;
                                           ^~~~~~
/usr/include/c++/7/bits/unordered_map.h:114:46: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<std::hash<Node> >, std::__detail::__is_noexcept_hash<Node, std::hash<Node> > > >'
       typedef typename _Hashtable::key_equal key_equal;
                                              ^~~~~~~~~
/usr/include/c++/7/bits/unordered_map.h:115:51: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<std::hash<Node> >, std::__detail::__is_noexcept_hash<Node, std::hash<Node> > > >'
       typedef typename _Hashtable::allocator_type allocator_type;
                                                   ^~~~~~~~~~~~~~
/usr/include/c++/7/bits/unordered_map.h:120:45: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<std::hash<Node> >, std::__detail::__is_noexcept_hash<Node, std::hash<Node> > > >'
       typedef typename _Hashtable::pointer  pointer;
                                             ^~~~~~~
/usr/include/c++/7/bits/unordered_map.h:121:50: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<std::hash<Node> >, std::__detail::__is_noexcept_hash<Node, std::hash<Node> > > >'
       typedef typename _Hashtable::const_pointer const_pointer;
                                                  ^~~~~~~~~~~~~
/usr/include/c++/7/bits/unordered_map.h:122:47: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<std::hash<Node> >, std::__detail::__is_noexcept_hash<Node, std::hash<Node> > > >'
       typedef typename _Hashtable::reference  reference;
                                               ^~~~~~~~~
/usr/include/c++/7/bits/unordered_map.h:123:52: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<std::hash<Node> >, std::__detail::__is_noexcept_hash<Node, std::hash<Node> > > >'
       typedef typename _Hashtable::const_reference const_reference;
                                                    ^~~~~~~~~~~~~~~
/usr/include/c++/7/bits/unordered_map.h:124:46: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<std::hash<Node> >, std::__detail::__is_noexcept_hash<Node, std::hash<Node> > > >'
       typedef typename _Hashtable::iterator  iterator;
                                              ^~~~~~~~
/usr/include/c++/7/bits/unordered_map.h:125:51: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<std::hash<Node> >, std::__detail::__is_noexcept_hash<Node, std::hash<Node> > > >'
       typedef typename _Hashtable::const_iterator const_iterator;
                                                   ^~~~~~~~~~~~~~
/usr/include/c++/7/bits/unordered_map.h:126:51: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<std::hash<Node> >, std::__detail::__is_noexcept_hash<Node, std::hash<Node> > > >'
       typedef typename _Hashtable::local_iterator local_iterator;
                                                   ^~~~~~~~~~~~~~
/usr/include/c++/7/bits/unordered_map.h:127:57: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<std::hash<Node> >, std::__detail::__is_noexcept_hash<Node, std::hash<Node> > > >'
       typedef typename _Hashtable::const_local_iterator const_local_iterator;
                                                         ^~~~~~~~~~~~~~~~~~~~
/usr/include/c++/7/bits/unordered_map.h:128:47: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<std::hash<Node> >, std::__detail::__is_noexcept_hash<Node, std::hash<Node> > > >'
       typedef typename _Hashtable::size_type  size_type;
                                               ^~~~~~~~~
/usr/include/c++/7/bits/unordered_map.h:129:52: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<std::hash<Node> >, std::__detail::__is_noexcept_hash<Node, std::hash<Node> > > >'
       typedef typename _Hashtable::difference_type difference_type;
                                                    ^~~~~~~~~~~~~~~
/usr/include/c++/7/bits/unordered_map.h:288:7: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<std::hash<Node> >, std::__detail::__is_noexcept_hash<Node, std::hash<Node> > > >'
       operator=(initializer_list<value_type> __l)
       ^~~~~~~~
/usr/include/c++/7/bits/unordered_map.h:386:2: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<std::hash<Node> >, std::__detail::__is_noexcept_hash<Node, std::hash<Node> > > >'
  emplace(_Args&&... __args)
  ^~~~~~~
/usr/include/c++/7/bits/unordered_map.h:578:7: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<std::hash<Node> >, std::__detail::__is_noexcept_hash<Node, std::hash<Node> > > >'
       insert(const value_type& __x)
       ^~~~~~
/usr/include/c++/7/bits/unordered_map.h:584:7: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<std::hash<Node> >, std::__detail::__is_noexcept_hash<Node, std::hash<Node> > > >'
       insert(value_type&& __x)
       ^~~~~~
/usr/include/c++/7/bits/unordered_map.h:591:2: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<std::hash<Node> >, std::__detail::__is_noexcept_hash<Node, std::hash<Node> > > >'
  insert(_Pair&& __x)
  ^~~~~~
/usr/include/c++/7/bits/unordered_map.h:657:7: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<std::hash<Node> >, std::__detail::__is_noexcept_hash<Node, std::hash<Node> > > >'
       insert(initializer_list<value_type> __l)
       ^~~~~~
/usr/include/c++/7/bits/unordered_map.h:953:7: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<std::hash<Node> >, std::__detail::__is_noexcept_hash<Node, std::hash<Node> > > >'
       equal_range(const key_type& __x)
       ^~~~~~~~~~~
/usr/include/c++/7/bits/unordered_map.h:957:7: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<std::hash<Node> >, std::__detail::__is_noexcept_hash<Node, std::hash<Node> > > >'
       equal_range(const key_type& __x) const
       ^~~~~~~~~~~
olympiads.cpp: In function 'int main()':
olympiads.cpp:54:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if (E.size() == K) break;
       ~~~~~~~~~^~~~
olympiads.cpp:63:5: error: no match for 'operator[]' (operand types are 'std::unordered_map<Node, int>' and 'Node')
  Map[EE] = 1;
     ^
olympiads.cpp:83:12: error: no match for 'operator[]' (operand types are 'std::unordered_map<Node, int>' and 'Node')
     if (Map[G] == 1) continue;
            ^
olympiads.cpp:85:8: error: no match for 'operator[]' (operand types are 'std::unordered_map<Node, int>' and 'Node')
     Map[G] = 1;
        ^