일차 함수 Batch
Time limit | Memory limit | # of submissions | # of submitted users | Solved # | Accepted user ratio |
---|---|---|---|---|---|
2000 ms | 32 MiB | 150 | 83 | 79 | 95.18% |
함수 $f(x) = ax + b$는 일차함수입니다. $f$를 호출해서 함숫값을 알아낼 수 있을 때, $a$와 $b$의 값을 구하는 프로그램을 작성하세요.
단, $f$의 정의역은 $-10^2$ 이상 $10^2$ 이하의 정수들로 구성된 집합이며, $a$와 $b$의 값은 $-10^5$ 이상 $10^5$ 이하의 정수입니다. 프로그램에서 $f(x)$를 호출할 때 $x$가 정의역의 범위를 벗어나면 런타임 에러가 발생할 수 있습니다.
해야 할 일
여러분은 $a$와 $b$의 값을 구하는 함수 solve()
를 작성해야 합니다. 이 함수에는 별도의 인자가 주어지지 않습니다. solve
에서 호출해야 할 함수들은 아래와 같습니다.
f(x)
:f(x)
의 값을 돌려주는 함수입니다.Report(a, b)
:solve
에서 맨 마지막에 호출해야 하는 함수로,a
와b
의 값을 알려 주는 역할을 합니다. 이 값이 실제의 답과 다르다면 틀린 답으로 처리됩니다.
서브태스크
서브태스크 1 (5점)
$f(x)$를 최대 10번 호출할 수 있습니다. 이 함수를 11번 이상 호출할 시 런타임 에러가 발생합니다.
서브태스크 2 (20점)
$f(x)$를 최대 5번 호출할 수 있습니다. 이 함수를 6번 이상 호출할 시 런타임 에러가 발생합니다.
서브태스크 3 (75점)
$f(x)$를 최대 2번 호출할 수 있습니다. 이 함수를 3번 이상 호출할 시 런타임 에러가 발생합니다.
구현 시 유의사항
채점 환경
- 실제 채점 시
solve()
함수는 1번 실행할 때마다 최대 50번씩 호출됩니다. 따라서, 이로 인해 발생할 수 있는 초기화 문제를 잘 신경써야 합니다. - 프로그램의 최대 실행 시간은 1초입니다. (50번/1초) 채점 프로그램의 실행 시간이 0.2초를 넘지 않음이 보장되어 있습니다.
- 메모리 제한은 32MB이며, 스택 메모리 역시 전체 메모리에 포함됩니다.
인터페이스
문제에 제시된 첨부파일 grader.zip
에서 개발에 필요한 인터페이스가 제공됩니다. 이를 이용해서 이 문제를 좀 더 쉽게 해결할 수 있을 것입니다. 아래에 그 설명이 있습니다.
- 작성해야 할 파일:
tutorial4.c
또는tutorial4.cpp
- 채점 프로그램 인터페이스:
grader.h
- 견본 채점 프로그램:
grader.c
또는grader.cpp
- 컴파일 쉘(gcc):
compile_c.sh
또는compile_cpp.sh
- 입력 예제:
example.in
,example.out
이 문제에서 주어지는 견본 채점 프로그램은 표준 입출력(stdin
, stdout
)으로 입출력을 시행합니다. 견본 채점 프로그램은 $a$와 $b$의 값을 공백을 사이로 두고 입력하면 프로그램이 찾은 $a$와 $b$의 값과 f(x)
의 호출 횟수를 출력합니다.
[참고] {{submission:446}}, {{submission:454}}번 제출을 참고해서 문제를 해결하세요.
File name | Size |
---|---|
grader.zip | 1.91 KiB |