CLOCKSYNC 질문입니다. freestar 안녕하세요 [[problem:CLOCKSYNC]] 문제를 푸는 중입니다. 완전탐색이라고 해서 완전 무식하게 짰는데도 계속 오답 결과를 받고 있습니다. 주어진 예제 테스트 케이스는 물론이고 나름 이런저런 예제 만들어서 해봤는데도 잘 나왔는데 도저히 모르겠네요. 조언 부탁드립니다. 코드가 좀.. 부끄럽지만 올려봅니다. #include<stdio.h> int clock[16]; int chk(int a, int b, int c, int d, int e, int f, int g, int h, int i, int j) { //0 clock[0] = (clock[0] + 3 * a) % 12; clock[1] = (clock[1] + 3 * a) % 12; clock[2] = (clock[2] + 3 * a) % 12; //1 clock[3] = (clock[3] + 3 * b) % 12; clock[7] = (clock[7] + 3 * b) % 12; clock[9] = (clock[9] + 3 * b) % 12; clock[11] = (clock[11] + 3 * b) % 12; //2 clock[4] = (clock[4] + 3 * c) % 12; clock[10] = (clock[10] + 3 * c) % 12; clock[14] = (clock[14] + 3 * c) % 12; clock[15] = (clock[15] + 3 * c) % 12; //3 clock[0] = (clock[0] + 3 * d) % 12; clock[4] = (clock[4] + 3 * d) % 12; clock[5] = (clock[5] + 3 * d) % 12; clock[6] = (clock[6] + 3 * d) % 12; clock[7] = (clock[7] + 3 * d) % 12; //4 clock[6] = (clock[6] + 3 * e) % 12; clock[7] = (clock[7] + 3 * e) % 12; clock[8] = (clock[8] + 3 * e) % 12; clock[10] = (clock[10] + 3 * e) % 12; clock[12] = (clock[12] + 3 * e) % 12; //5 clock[0] = (clock[0] + 3 * f) % 12; clock[2] = (clock[2] + 3 * f) % 12; clock[14] = (clock[14] + 3 * f) % 12; clock[15] = (clock[15] + 3 * f) % 12; //6 clock[3] = (clock[3] + 3 * g) % 12; clock[14] = (clock[14] + 3 * g) % 12; clock[15] = (clock[15] + 3 * g) % 12; //7 clock[4] = (clock[4] + 3 * h) % 12; clock[5] = (clock[5] + 3 * h) % 12; clock[7] = (clock[7] + 3 * h) % 12; clock[14] = (clock[14] + 3 * h) % 12; clock[15] = (clock[15] + 3 * h) % 12; //8 clock[1] = (clock[1] + 3 * i) % 12; clock[2] = (clock[2] + 3 * i) % 12; clock[3] = (clock[3] + 3 * i) % 12; clock[4] = (clock[4] + 3 * i) % 12; clock[5] = (clock[5] + 3 * i) % 12; //9 clock[3] = (clock[3] + 3 * j) % 12; clock[4] = (clock[4] + 3 * j) % 12; clock[5] = (clock[5] + 3 * j) % 12; clock[9] = (clock[9] + 3 * j) % 12; clock[13] = (clock[13] + 3 * j) % 12; for (int k = 0; k < 16; k++) { if (clock[k] != 0) return 0; } return 1; } int main() { int C; int min = 100; scanf("%d", &C); for (int c = 0; c < C;c++) { for (int i = 0; i < 16; i++) scanf("%d", &clock[i]); for (int a = 0; a < 4;a++) for (int b = 0; b < 4; b++) for (int c = 0; c < 4; c++) for (int d = 0; d < 4; d++) for (int e = 0; e < 4; e++) for (int f = 0; f < 4; f++) for (int g = 0; g < 4; g++) for (int h = 0; h < 4; h++) for (int i = 0; i < 4; i++) for (int j = 0; j < 4; j++) { if (chk(a, b, c, d, e, f, g, h, i, j)) { if (a + b + c + d + e + f + g + h + i + j < min) min = a + b + c + d + e + f + g + h + i + j; } } if (min == 100) min = -1; printf("%d\n", min); min = 100; } return 0; } 11년 전
2개의 댓글이 있습니다. Kureyo chk함수로 clock값들을 바꾼뒤에 원상복귀를 해주셔야할듯합니다 11년 전 link freestar 정말 감사합니다. 덕분에 해결했습니다. 11년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
freestar
안녕하세요
[[problem:CLOCKSYNC]] 문제를 푸는 중입니다.
완전탐색이라고 해서 완전 무식하게 짰는데도
계속 오답 결과를 받고 있습니다.
주어진 예제 테스트 케이스는 물론이고
나름 이런저런 예제 만들어서 해봤는데도 잘 나왔는데
도저히 모르겠네요.
조언 부탁드립니다.
코드가 좀.. 부끄럽지만 올려봅니다.
11년 전