# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
82162 | 2018-10-29T10:30:57 Z | Just_Solve_The_Problem | 아름다운 순열 (IZhO12_beauty) | C++11 | 2076 ms | 576 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; } int get1(int x) { int res = 0; while (x) { res += (x % 2 == 1); x /= 2; } 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 &= (get1(a[i]) == get1(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 | 376 KB | Output is correct |
2 | Correct | 2 ms | 380 KB | Output is correct |
3 | Correct | 2 ms | 424 KB | Output is correct |
4 | Correct | 2 ms | 500 KB | Output is correct |
5 | Correct | 2 ms | 500 KB | Output is correct |
6 | Correct | 1988 ms | 548 KB | Output is correct |
7 | Correct | 2076 ms | 548 KB | Output is correct |
8 | Correct | 856 ms | 576 KB | Output is correct |
9 | Incorrect | 921 ms | 576 KB | Output isn't correct |
10 | Halted | 0 ms | 0 KB | - |