답안 #152313

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
152313 2019-09-07T11:37:57 Z cheetose 함수컵 박물관 (FXCUP4_museum) C++17
100 / 100
89 ms 10852 KB
#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<vector>
#include<queue>
#include<bitset>
#include<string>
#include<stack>
#include<set>
#include<unordered_set>
#include<map>
#include<unordered_map>
#include<cstring>
#include<complex>
#include<cmath>
#include<iomanip>
#include<numeric>
#include<algorithm>
#include<list>
#include<functional>
#include<cassert>
#define mp make_pair
#define pb push_back
#define X first
#define Y second
#define y0 y12
#define y1 y22
#define INF 987654321
#define PI 3.141592653589793238462643383279502884
#define fup(i,a,b,c) for(int (i)=(a);(i)<=(b);(i)+=(c))
#define fdn(i,a,b,c) for(int (i)=(a);(i)>=(b);(i)-=(c))
#define MEM0(a) memset((a),0,sizeof(a));
#define MEM_1(a) memset((a),-1,sizeof(a));
#define ALL(a) a.begin(),a.end()
#define SYNC ios_base::sync_with_stdio(false);cin.tie(0)
using namespace std;
typedef long long ll;
typedef long double ld;
typedef double db;
typedef unsigned int uint;
typedef unsigned long long ull;
typedef pair<int, int> Pi;
typedef pair<ll, ll> Pll;
typedef pair<ld, ld> Pd;
typedef vector<int> Vi;
typedef vector<ll> Vll;
typedef vector<double> Vd;
typedef vector<Pi> VPi;
typedef vector<Pll> VPll;
typedef vector<Pd> VPd;
typedef tuple<int, int, int> iii;
typedef tuple<int,int,int,int> iiii;
typedef tuple<ll, ll, ll> LLL;
typedef vector<iii> Viii;
typedef vector<LLL> VLLL;
typedef complex<double> base;
const ll MOD = 1000000007;
ll POW(ll a, ll b, ll MMM = MOD) {ll ret=1; for(;b;b>>=1,a=(a*a)%MMM)if(b&1)ret=(ret*a)% MMM; return ret; }
ll gcd(ll a, ll b) { return b ? gcd(b, a%b) : a; }
ll lcm(ll a, ll b) { if (a == 0 || b == 0)return a + b; return a*(b / gcd(a, b)); }
int dx[] = { 0,1,0,-1,1,1,-1,-1 }, dy[] = { 1,0,-1,0,1,-1,1,-1 };

int c[100][100][100];
inline ll r(int x){return 1LL*x*(x-1)/2;}
ll CountSimilarPairs(Vi B, Vi T, Vi G)
{
	int N=B.size();
	fup(i,0,N-1,1)c[B[i]-1][T[i]-1][G[i]-1]++;
	ll ans=0;
	fup(i,0,99,1)
	{
		int t=0;
		fup(j,0,99,1)fup(k,0,99,1)t+=c[i][j][k];
		ans+=r(t);
		t=0;
		fup(j,0,99,1)fup(k,0,99,1)t+=c[j][i][k];
		ans+=r(t);
		t=0;
		fup(j,0,99,1)fup(k,0,99,1)t+=c[k][j][i];
		ans+=r(t);
	}
	fup(i,0,99,1)
		fup(j,0,99,1)
	{
		int t=0;
		fup(k,0,99,1)t+=c[i][j][k];
		ans-=r(t);
		t=0;
		fup(k,0,99,1)t+=c[j][k][i];
		ans-=r(t);
		t=0;
		fup(k,0,99,1)t+=c[k][j][i];
		ans-=r(t);
	}
	fup(i,0,99,1)fup(j,0,99,1)fup(k,0,99,1)ans+=r(c[i][j][k]);
	return ans;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 10 ms 376 KB Output is correct
2 Correct 10 ms 376 KB Output is correct
3 Correct 9 ms 376 KB Output is correct
4 Correct 9 ms 504 KB Output is correct
5 Correct 11 ms 1656 KB Output is correct
6 Correct 12 ms 2040 KB Output is correct
7 Correct 13 ms 2808 KB Output is correct
8 Correct 10 ms 504 KB Output is correct
9 Correct 15 ms 3832 KB Output is correct
10 Correct 16 ms 3832 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 10 ms 376 KB Output is correct
2 Correct 10 ms 376 KB Output is correct
3 Correct 9 ms 376 KB Output is correct
4 Correct 9 ms 504 KB Output is correct
5 Correct 11 ms 1656 KB Output is correct
6 Correct 12 ms 2040 KB Output is correct
7 Correct 13 ms 2808 KB Output is correct
8 Correct 10 ms 504 KB Output is correct
9 Correct 15 ms 3832 KB Output is correct
10 Correct 16 ms 3832 KB Output is correct
11 Correct 18 ms 4344 KB Output is correct
12 Correct 18 ms 1348 KB Output is correct
13 Correct 37 ms 5748 KB Output is correct
14 Correct 49 ms 6960 KB Output is correct
15 Correct 69 ms 8300 KB Output is correct
16 Correct 72 ms 6388 KB Output is correct
17 Correct 73 ms 6508 KB Output is correct
18 Correct 78 ms 8092 KB Output is correct
19 Correct 85 ms 10852 KB Output is correct
20 Correct 89 ms 10724 KB Output is correct