# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
82160 | 2018-10-29T10:22:55 Z | Just_Solve_The_Problem | 아름다운 순열 (IZhO12_beauty) | C++11 | 1036 ms | 692 KB |
#include <stdio.h> #include <algorithm> using namespace std; #define ll long long int a[22]; int n; int get(int x) { int res = 0; while (x) { res += (x % 3 == 1); x /= 3; } return res; } main() { scanf("%d", &n); for (int i = 1; i <= n; i++) { scanf("%d", &a[i]); } sort(a + 1, a + n + 1); int ans = 0; do { int ok = 1; for (int i = 1; i < n; i++) { ok &= (__builtin_popcount(a[i]) == __builtin_popcount(a[i + 1]) || get(a[i]) == get(a[i + 1])); } ans += ok; } while(next_permutation(a + 1, a + n + 1)); printf("%d", ans); }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 256 KB | Output is correct |
2 | Correct | 2 ms | 380 KB | Output is correct |
3 | Correct | 2 ms | 380 KB | Output is correct |
4 | Correct | 2 ms | 424 KB | Output is correct |
5 | Correct | 2 ms | 424 KB | Output is correct |
6 | Correct | 961 ms | 500 KB | Output is correct |
7 | Correct | 1036 ms | 540 KB | Output is correct |
8 | Correct | 203 ms | 540 KB | Output is correct |
9 | Incorrect | 442 ms | 692 KB | Output isn't correct |
10 | Halted | 0 ms | 0 KB | - |