PivotOJ

Karl Coder

시간 제한: 1000ms메모리 제한: 1024MB출처: NCPC 2023BOJ 30442

문제

Karl is an aspiring C programmer, and is excited by the risks and rewards of low-level manual memory management. In the program he currently develops, he stores a string containing NN non-zero bytes into a buffer named "buf". By mistake he accidentally made the buffer 2N2 N bytes in size. The last NN bytes of the buffer consists of only zero-bytes.

Now Karl needs to know the value NN, the size of the string, in a separate part of the program. Traditionally you would recover the length of a string using the strlen-function, which reports the position of the first zero-byte in the provided buffer using a linear scan. However, Karl finds that this is much too slow, and that it defeats the advantage of using C in the first place. Can you help Karl efficiently recover NN without crashing his program?

The contents of the buffer in sample interaction 3 are shown here.

예제

예제 1

입력
65

0
출력
buf[1]

buf[2]

strlen(buf) = 2

예제 2

입력
50

0

Segmentation fault (core dumped)
출력
buf[1]

buf[5]

buf[7]

예제 3

입력
78

67

80

67

Too many reads
출력
buf[0]

buf[1]

buf[2]

buf[3]

buf[4]
이 문제는 채점 준비 중입니다. 테스트 데이터가 확보되면 제출이 가능합니다.