Submission #89277

# Submission time Handle Problem Language Result Execution time Memory
89277 2018-12-11T08:28:33 Z Badral Beautiful row (IZhO12_beauty) C++17
0 / 100
2 ms 376 KB
#include<bits/stdc++.h>
using namespace std;
 
#define ll long long
 
ll a[55], n, b[55][55];
 
ll gurav(ll x) {ll s = 0; while (x) {s += (x % 3 == 1); x /= 3; } return s; }
ll hoyr(ll x) {ll s = 0; while (x) {s += (x % 2 == 1); x /= 2; } return s; }
ll c[1 << 20][20], ans;

int main() {
	ll n;
	cin >>n;
	for(ll i = 0; i < n; i++) {
		ll x;
		cin >>x;
		a[i] = x;
		c[1 << i][i]++;
	}
	for(ll i = 0; i < n; i++) 
		for(ll j = 0; j < n; j++) 
			if(gurav(a[i]) == gurav(a[j]) || hoyr(a[i]) == hoyr(a[j])) 
				b[i][j] = 1;

	for(ll i = 1; i < (1 << n); i++)
		for(ll j = 0; j < n; j++) {
      		if((i >> j) & 1) continue;
			for(ll k = 0; k < n; k++) 
				if(((i >> k) & 1) && b[j][k]) 
					c[i | (1 << k)][k] += c[i][j];
		}

	for(ll i = 0; i < n; i++) ans += c[(1 << n) - 1][i];
	cout<<ans;
}
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 376 KB Output isn't correct
2 Halted 0 ms 0 KB -