답안 #150775

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
150775 2019-09-01T08:55:11 Z 20190901(#3597, tongnamuu, jf297, upple1) 함수컵 박물관 (FXCUP4_museum) C++17
컴파일 오류
0 ms 0 KB
#include "museum.h"
#include <vector>
#include <map>

using namespace std;

using ll = long long;

int arr1[101];
int arr2[101];
int arr3[101];
ll fac[101];

ll CountSimilarPairs(vector<int> B, vector<int> T, vector<int> G)
{
	fac[0] = 1;
	for (int i = 1; i < 101; i++)
		fac[i] = fac[i - 1] * i;

	ll ans = 0;
	int n = (int)B.size();
	for (int i = 0; i < n; i++)
		arr1[B[i]]++;

	for (int i = 0; i < n; i++)
		arr2[T[i]]++;

	for (int i = 0; i < n; i++)
		arr3[G[i]]++;

	for (int i = 0; i < 101; i++)
		if (arr1[i] > 1)
			ans += arr1[i] * (arr1[i] - 1) / 2;

	for (int i = 0; i < 101; i++)
		if (arr2[i] > 1)
			ans += arr2[i] * (arr2[i] - 1) / 2;

	for (int i = 0; i < 101; i++)
		if (arr3[i] > 1)
			ans += arr2[i] * (arr2[i] - 1) / 2;

	map<pair<int, int>, ll> m;
	for (int i = 0; i < n; i++)
		m[{ B[i], T[i] }]++;

	ll tmp = 0;
	for (auto[key, val] : m)
		tmp += (val * (val - 1)) / 2;
	ans -= tmp;

	m.clear();
	for (int i = 0; i < n; i++)
		m[{ G[i], T[i] }]++;

	tmp = 0;
	for (auto[key, val] : m)
		tmp += (val * (val - 1)) / 2;
	ans -= tmp;

	m.clear();
	for (int i = 0; i < n; i++)
		m[{ B[i], G[i] }]++;

	tmp = 0;
	for (auto[key, val] : m)
		tmp += (val * (val - 1)) / 2;
	ans -= tmp;

	map<pair<int, pair<int, int>>> m2;
	for (int i = 0; i < n; i++)
		m2[{ B[i], { T[i], G[i] } }]++;

	tmp = 0;
	for (auto[key, val] : m)
		tmp += (val * (val - 1)) / 2;
	ans -= tmp;

	return ans;
}

Compilation message

museum.cpp: In function 'll CountSimilarPairs(std::vector<int>, std::vector<int>, std::vector<int>)':
museum.cpp:48:20: warning: unused variable 'key' [-Wunused-variable]
  for (auto[key, val] : m)
                    ^
museum.cpp:57:20: warning: unused variable 'key' [-Wunused-variable]
  for (auto[key, val] : m)
                    ^
museum.cpp:66:20: warning: unused variable 'key' [-Wunused-variable]
  for (auto[key, val] : m)
                    ^
museum.cpp:70:31: error: wrong number of template arguments (1, should be at least 2)
  map<pair<int, pair<int, int>>> m2;
                               ^
In file included from /usr/include/c++/7/map:61:0,
                 from museum.cpp:3:
/usr/include/c++/7/bits/stl_map.h:99:11: note: provided for 'template<class _Key, class _Tp, class _Compare, class _Alloc> class std::map'
     class map
           ^~~
museum.cpp:72:30: error: invalid types 'int[<brace-enclosed initializer list>]' for array subscript
   m2[{ B[i], { T[i], G[i] } }]++;
                              ^
museum.cpp:75:20: warning: unused variable 'key' [-Wunused-variable]
  for (auto[key, val] : m)
                    ^