Submission #885769

#TimeUsernameProblemLanguageResultExecution timeMemory
885769ZeroBeautiful row (IZhO12_beauty)C++17
0 / 100
569 ms408 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
int bt(int n){
	return __builtin_popcountll(n);
}
int tr(int n){
    int c = 0;
    if (!n)return 0;

    while (n > 0) {
        int r = n % 3;
        if(r==1)c++;
        n/= 3;
    }

    return c;
}
bool ok(vector<int> a){
	for(int i=0; i < (int)a.size()-1; i ++){
		int b1 = bt(a[i]), t1 = tr(a[i]);
		int b2 = bt(a[i+1]), t2 = tr(a[i+1]);
		if(!(b1 == b2 || t1 == t2)) return 0;
	}
	return 1;
}
signed main() {
	int n; cin >> n;
	vector<int> a(n);
	int z = 0;
	for(auto &i : a ){
		cin >> i;
		if(!i)z++;
	}
	if(z) return cout << 0,0;
	sort(a.begin(),a.end());
	int c = 0;
	do{
		c += ok(a);
	}while(next_permutation(a.begin(),a.end()));
	cout << c;
	
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...