Submission #148528

#TimeUsernameProblemLanguageResultExecution timeMemory
148528rkm0959 (#200)FunctionCup Museum (FXCUP4_museum)C++17
100 / 100
110 ms18564 KiB
#include <bits/stdc++.h>
#define L long long

using namespace std;

int n;
int a[7][200020];
L cnt[1000010];

L CountSimilarPairs(vector<int>B, vector<int>T, vector<int> G){
	int i,j;
	L ret=0;
	n=B.size();
	for(i=0;i<n;i++)
	{
		B[i]--;
		T[i]--;
		G[i]--;
		a[0][i]=B[i];
		a[1][i]=T[i];
		a[2][i]=G[i];
		a[3][i]=B[i]*10000+T[i]*100+G[i];
		a[4][i]=B[i]*100+T[i];
		a[5][i]=T[i]*100+G[i];
		a[6][i]=G[i]*100+B[i];
	}
	for(i=0;i<7;i++)
	{
		for(j=0;j<n;j++)
		{
			if(i<=3) ret+=cnt[a[i][j]];
			else ret-=cnt[a[i][j]];
			cnt[a[i][j]]++;
		}
		for(j=0;j<n;j++)
		{
			cnt[a[i][j]]--;
		}
	}
	return ret;
}
/*
#include <stdio.h>
#include <stdlib.h>
#include "museum.h"

static int N;
static std::vector<int> Badge, Tshirt, Gift;

static void my_assert(int TF, const char* message){
	if(!TF){ puts(message); exit(1); }
}

int main(){
	my_assert(scanf("%d", &N) == 1, "Error: Invalid Input");
	my_assert(2 <= N && N <= 200000, "Error: Invalid Input");

	for(int i=0; i<N; i++){
		int a;
		my_assert(scanf("%d", &a) == 1, "Error: Invalid Input");
		my_assert(1 <= a && a <= 100, "Error: Invalid Input");
		Badge.push_back(a);
	}
	for(int i=0; i<N; i++){
		int a;
		my_assert(scanf("%d", &a) == 1, "Error: Invalid Input");
		my_assert(1 <= a && a <= 100, "Error: Invalid Input");
		Tshirt.push_back(a);
	}
	for(int i=0; i<N; i++){
		int a;
		my_assert(scanf("%d", &a) == 1, "Error: Invalid Input");
		my_assert(1 <= a && a <= 100, "Error: Invalid Input");
		Gift.push_back(a);
	}

	printf("%lld\n", CountSimilarPairs(Badge, Tshirt, Gift));
	return 0;
}
*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...