1
영어로 이것을 어떻게 표현할 지 모르겠지만 대답을 찾기가 꽤 어려웠습니다! 그래서, 나는 가장 긴 낮잠 문제를 할 노력하고있어UVa - 가장 긴 낮잠
: 내 코드가 작동하고 있지만 판사 잘못된 응답받는 유지하고 나는 두 개의 테스트 케이스에 입력 할 때 문제가 생각 https://uva.onlinejudge.org/external/101/10191.pdf
행. 그래서
1
12:00 13:00 schedule A
:
Day #1: the longest nap starts at 13:00 and will last for 5 hours and 0 minutes.
을하지만 난 입력하면 :
내가 입력
1
2
숫자 2는 새로운 테스트 케이스로 무시되고 나는 그 이유 가정 판사님의 대답이 잘못되었습니다.
그래서 두 번째 숫자를 입력하고 싶습니다. 두 번째 scanf가 내 코드에서 새 테스트 케이스가됩니다. 내 스위치 케이스의 경우 1 추가하려고 : 내가 입력 한 새로운 테스트 케이스가이 변수에 의해하지만 성공
while(scanf("%d", &testcase) == 1) {
int result = 0, start;
if(testcase > MAXVALUE) continue;
//here I ignore testcase > 100
if(testcase == 0) {ret = SCANF; start = STARTIME; result = WORK;}
//if there's no testcase my longest nap will be the 8 hours! SCANF = 5
for(i = 0; i < testcase; i++) {
ret = scanf("%d:%d %d:%d %255[a-zA-Z ]", &initH, &initM, &fintH, &fintM, appoint);
//variables: H(hour), M(minute), appointment
switch (ret){
case 5:
schedule[i].start = initH*HOUR + initM; //struct here
schedule[i].endin = fintH*HOUR + fintM; //to keep this data
break;
default:
i = testcase;
break;
}
if((initH < INIT) || (fintM + fintH*HOUR) > ENDTIME) {error++; break;}
//10:00 < time < 18:00
if((initH*HOUR + initM) > (fintH*HOUR + fintM)) {error++; break;}
//initial hour in a schedule < end time in a schedule
while(getchar() != '\n');
}
if(error != 0) {error = 0; continue;} //if error then ignore everything!
두 번째 입력이 잘못되었습니다. "1"이있는 행이 있으면 그날의 단일 약속이있는 다른 행이 필요합니다. * 전에 * 다음 날에 두 개의 약속이 있음을 알릴 수 있습니다. – Matthias
"2"와 같이 두 번째 숫자를 입력하면 숫자 "1"을 무시하고 싶습니다. 그래서 "ret"변수가 값을 "1"로 얻는다면, 새로운 테스트 케이스 번호로 인식하고 싶습니다. –
'appoint','schedule []' 정의를 포스트 정의합니다. – chux