complete 20153.c
This commit is contained in:
37
zeta_C/completed/20153.c
Normal file
37
zeta_C/completed/20153.c
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#define max(x, y) (x) > (y) ? (x) : (y)
|
||||||
|
|
||||||
|
// 영웅이 표기법 31 -> 16 + 8 + 4 + 2 + 1 11111
|
||||||
|
// 5(101) = 4 + 1, 7(111) = 4 + 2 + 1, 11 = 8 + 2 + 1 1011
|
||||||
|
// all 1001 5빼면 1100(12) 7빼면 1110(14) 당첨
|
||||||
|
// 하나 빼기
|
||||||
|
// 짝수면 제거 --> 사라지면 없음
|
||||||
|
// 홀수면 생존 --> 생기면 뭐
|
||||||
|
int 영웅이찾기(int N, int *A) {
|
||||||
|
int all = 0;
|
||||||
|
for (int i = 0; i < N; i++) {
|
||||||
|
all ^= A[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
int M = all;
|
||||||
|
for (int i = 0; i < N; i++) {
|
||||||
|
M = max(M, all ^ A[i]);
|
||||||
|
}
|
||||||
|
return M;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
int power[22] = {0};
|
||||||
|
int N;
|
||||||
|
scanf("%d", &N);
|
||||||
|
int *A = (int *) calloc(N, sizeof(int));
|
||||||
|
for (int i = 0; i < N; i++) {
|
||||||
|
scanf("%d", A + i);
|
||||||
|
}
|
||||||
|
|
||||||
|
int r = 영웅이찾기(N, A);
|
||||||
|
printf("%d%d\n", r, r);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user