CLOCKSYNC 질문입니다. freestar 안녕하세요 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; } 9년 전
2개의 댓글이 있습니다. Kureyo chk함수로 clock값들을 바꾼뒤에 원상복귀를 해주셔야할듯합니다 9년 전 link freestar 정말 감사합니다. 덕분에 해결했습니다. 9년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
freestar
안녕하세요
CLOCKSYNC 문제를 푸는 중입니다.
완전탐색이라고 해서 완전 무식하게 짰는데도
계속 오답 결과를 받고 있습니다.
주어진 예제 테스트 케이스는 물론이고
나름 이런저런 예제 만들어서 해봤는데도 잘 나왔는데
도저히 모르겠네요.
조언 부탁드립니다.
코드가 좀.. 부끄럽지만 올려봅니다.
9년 전