2852번 - NBA 농구
#include
void goal(int n){
int teamnum, min, sec, max;
int start = 0, goaltime = 0, onetime = 0, twotime = 0, boolean = 0, onescore = 0, twoscore = 0, tie = 0; int winstate = 0; max = 1;
while(n--){
scanf("%d %d:%d", &teamnum, &min, &sec);
if(teamnum == 1){
onescore++;
}else if(teamnum == 2){
twoscore++;
} winstate = (onescore > twoscore)?1:2; goaltime = min*60 + sec; if(tie == 1){
start = goaltime; max = 0; tie = 0;
}
if(boolean != teamnum && max ==1){
if(boolean == 1){
onetime += goaltime - start;
}else if(boolean == 2){
twotime += goaltime - start;
start = goaltime; } max = 1; if(onescore == twoscore){ tie = 1; } if(n == 0 && tie != 1){ if(winstate ==1){ onetime += 2880- start; }else if(winstate == 2){
twotime += 2880 - start; } } boolean = (teamnum == 1) ? 1 : 2 } printf("%.2d:%.2d\n", onetime / 60, onetime % 60); printf("%.2d:%.2d\n", twotime / 60, twotime % 60);}int main() { int n; scanf("%d", &n); goal((int) n);}
다른 질문에 있는 반례를 다 넣어봤는데 다 통과가 됩니다. 반례를 못찾겠어요
댓글을 작성하려면 로그인해야 합니다.
pdm001125 4년 전
#include
void goal(int n){
int teamnum, min, sec, max;
int start = 0, goaltime = 0, onetime = 0, twotime = 0, boolean = 0, onescore = 0, twoscore = 0, tie = 0;
int winstate = 0;
max = 1;
while(n--){
scanf("%d %d:%d", &teamnum, &min, &sec);
if(teamnum == 1){
onescore++;
}else if(teamnum == 2){
twoscore++;
}
winstate = (onescore > twoscore)?1:2;
goaltime = min*60 + sec;
if(tie == 1){
start = goaltime;
max = 0;
tie = 0;
}
if(boolean != teamnum && max ==1){
if(boolean == 1){
onetime += goaltime - start;
}else if(boolean == 2){
twotime += goaltime - start;
}
start = goaltime;
}
max = 1;
if(onescore == twoscore){
tie = 1;
}
if(n == 0 && tie != 1){
if(winstate ==1){
onetime += 2880- start;
}else if(winstate == 2){
twotime += 2880 - start;
}
}
boolean = (teamnum == 1) ? 1 : 2
}
printf("%.2d:%.2d\n", onetime / 60, onetime % 60);
printf("%.2d:%.2d\n", twotime / 60, twotime % 60);
}
int main() {
int n;
scanf("%d", &n);
goal((int) n);
}
다른 질문에 있는 반례를 다 넣어봤는데 다 통과가 됩니다. 반례를 못찾겠어요