제출 #148570

#제출 시각아이디문제언어결과실행 시간메모리
148570mit한의대지망생 (#200)함수컵 박물관 (FXCUP4_museum)C++17
100 / 100
100 ms15844 KiB
#include <stdio.h>
#include "museum.h"

typedef long long lli;

lli a[101], b[101], c[101];
lli ab[101][101], ac[101][101], bc[101][101];
lli abc[101][101][101];

lli c2(lli x) {
	return x*(x-1)/2;
}

int n, x[200000], y[200000], z[200000];

long long CountSimilarPairs(std::vector<int> B, std::vector<int> T, std::vector<int> G) {
	n=B.size();
	for(int i=0;i<n;i++) {
		x[i]=B[i]; y[i]=T[i]; z[i]=G[i];
		a[x[i]]++; b[y[i]]++; c[z[i]]++;
		ab[x[i]][y[i]]++; ac[x[i]][z[i]]++; bc[y[i]][z[i]]++;
		abc[x[i]][y[i]][z[i]]++;
	}
	lli res=0;
	for(int i=1;i<=100;i++) {
		res+=c2(a[i]);
		res+=c2(b[i]);
		res+=c2(c[i]);
	}
	for(int i=1;i<=100;i++) {
		for(int j=1;j<=100;j++) {
			res-=c2(ab[i][j]);
			res-=c2(ac[i][j]);
			res-=c2(bc[i][j]);
		}
	}
	for(int i=1;i<=100;i++) {
		for(int j=1;j<=100;j++) {
			for(int k=1;k<=100;k++)
				res+=c2(abc[i][j][k]);
		}
	}
	return res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...