답안 #150666

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
150666 2019-09-01T08:48:03 Z Outfraware Boat People(#3577, c4big, bsyo2k, cepiloth) 함수컵 박물관 (FXCUP4_museum) C++17
0 / 100
5 ms 384 KB
#include "museum.h"
#include <set>
#include <vector>

typedef std::pair<int, int> PII;
typedef std::set<PII> SETPAIR;

using namespace std;

long long CountSimilarPairs(std::vector<int> B, std::vector<int> T, std::vector<int> G) {
	int N = B.size();
	long long count = 0;

	SETPAIR set_pair;

	// 100 ������.
	std::vector<int> BB[101];
	std::vector<int> TT[101];
	std::vector<int> GG[101];

	for (int i = 0; i < N; ++i) {
		BB[B[i]].push_back(i);
		TT[T[i]].push_back(i);
		GG[G[i]].push_back(i);
	}

	for (int i = 0; i < N; ++i) {
		vector<int> &vb = BB[B[i]];
		int sb = vb.size();

		for (int j = 0; j < sb; ++j) {
			if (i == vb[j])
				continue;
			set_pair.insert(PII(i, vb[j]));
		}

		vector<int> &vt = TT[T[i]];
		int st = vt.size();

		for (int j = 0; j < st; ++j) {
			if (i == vt[j])
				continue;
			set_pair.insert(PII(i, vt[j]));
		}

		vector<int> &vg = GG[G[i]];
		int sg = vg.size();

		for (int j = 0; j < sg; ++j) {
			if (i == vg[j])
				continue;
			set_pair.insert(PII(i, vg[j]));
		}
	}

	return (long long)set_pair.size();

	for (int i = 0; i < N; ++i) {
		for (int j = i + 1; j < N; ++j) {
			if (B[i] == B[j]) {
				set_pair.insert(PII(i, j));
				++count;
				continue;
			}

			if (T[i] == T[j]) {
				set_pair.insert(PII(i, j));
				++count;
				continue;
			}

			if (G[i] == G[j]) {
				set_pair.insert(PII(i, j));
				++count;
				continue;
			}
		}
	}

	return count;;
	//return (long long)set_pair.size();
}
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 384 KB Output is correct
2 Incorrect 5 ms 384 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 384 KB Output is correct
2 Incorrect 5 ms 384 KB Output isn't correct
3 Halted 0 ms 0 KB -