-2
어제 답변. 나는 포럼과 코멘트에서 모든 테스트 케이스를 시도했다. 유효한 해결책이 있거나 파일에있는 유일한 해결책입니까?SPOJ ABCD는 잘못된 나는 SPOJ 문제 ABCD를 해결했다
LOGIC :
- 이 ROW1에서 각 문자의 발생을 계산합니다. 디버그에 무엇을 모르고
#include<stdio.h> int i; int main() { int n; int counts[4] = {0}; char row1[1000000], row2[1000000]; scanf("%d", &n); scanf("%s", row1); while(row1[i]) { counts[row1[i] - 'A']++; i++; } i = 0; if(counts[0] < n && row1[i] != 'A') { row2[i] = 'A'; counts[0]++; } else if(counts[1] < n && row1[i] != 'B') { row2[i] = 'B'; counts[1]++; } else if(counts[2] < n && row1[i] != 'C') { row2[i] = 'C'; counts[2]++; } else { row2[i] = 'D'; counts[3]++; } i++; while(i < (2 * n)) { if(counts[0] < n && row1[i] != 'A' && row2[i - 1] != 'A') { row2[i] = 'A'; counts[0]++; } else if(counts[1] < n && row1[i] != 'B' && row2[i - 1] != 'B') { row2[i] = 'B'; counts[1]++; } else if(counts[2] < n && row1[i] != 'C' && row2[i - 1] != 'C') { row2[i] = 'C'; counts[2]++; } else { row2[i] = 'D'; counts[3]++; } i++; } row2[i] = '\0'; printf("%s", row2); return 0; }
내가 시간 동안 디버깅 봤는데 :
- 채우기
내 코드는 < N. 카운트 위 캐릭터에게 또한 왼쪽 문자를 확인 하나 하나 ROW2 . SPOJ 포럼조차도 해결책을 찾지 못했습니다.
스택 오버플로는 디버거가 아닙니다. 특히 학교 경연 대회에는 적합하지 않습니다. –