# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
150794 | 2019-09-01T08:56:29 Z | 20190901(#3597, tongnamuu, jf297, upple1) | 함수컵 박물관 (FXCUP4_museum) | C++17 | 6 ms | 384 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>>, ll> 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
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 384 KB | Output is correct |
2 | Incorrect | 6 ms | 384 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 384 KB | Output is correct |
2 | Incorrect | 6 ms | 384 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |