| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 12913 | baneling100 | 탐사 (KOI13_probe) | C++98 | 2036 ms | 668 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <stdio.h>
int K, N, Probe[41][1001][3], Len[41], Ans[41];
int backTrack(int now) {
int i, OK;
if(now>K)
return 1;
else {
Ans[now]=Ans[now-1]+1;
OK=1;
for(i=1 ; i<=Len[now] && OK ; i++) {
if(now==Probe[now][i][2]) {
if(Ans[now]-Ans[Probe[now][i][0]]!=Probe[now][i][1])
OK=0;
}
else
if(Ans[now]-Ans[Probe[now][i][0]]>Probe[now][i][1])
OK=0;
}
if(OK)
if(backTrack(now+1))
return 1;
Ans[now]=Ans[now-1];
OK=1;
for(i=1 ; i<=Len[now] && OK ; i++) {
if(now==Probe[now][i][2]) {
if(Ans[now]-Ans[Probe[now][i][0]]!=Probe[now][i][1])
OK=0;
}
else
if(Ans[now]-Ans[Probe[now][i][0]]>Probe[now][i][1])
OK=0;
}
if(OK)
if(backTrack(now+1))
return 1;
}
return 0;
}
int main(void) {
int i, j, in1, in2, in3;
scanf("%d %d",&K,&N);
for(i=1 ; i<=N ; i++) {
scanf("%d %d %d",&in1,&in2,&in3);
for(j=in1 ; j<=in2 ; j++) {
Len[j]++;
Probe[j][Len[j]][0]=in1-1;
Probe[j][Len[j]][1]=in3;
Probe[j][Len[j]][2]=in2;
}
}
if(backTrack(1))
for(i=1 ; i<=K ; i++) {
if(Ans[i]-Ans[i-1])
printf("#");
else
printf("-");
}
else
printf("NONE");
return 0;
}
컴파일 시 표준 에러 (stderr) 메시지
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
