시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
2 초 | 512 MB | 128 | 28 | 23 | 63.889% |
값이 0으로 초기화되어 있고 인덱스는 0으로 시작하는 정수 배열 A에 대해 다음 세 함수가 주어진다.
연산을 수행할 때마다, 리턴값을 출력하는 프로그램을 작성하시오.
예를 들어 아래와 같은 12개의 연산을 순서대로 적용한다고 해보자. 화살표 이후에 나타나는 값이 바로 당신의 프로그램이 출력해야하는 값이다.
총 n개의 연산이 주어졌을 때, 각 연산을 적용한 이후 올바른 값을 출력하는 프로그램을 작성하시오.
첫 줄에 연산의 수 n이 주어진다.
각 연산은 종류에 따라 아래와 같은 형태로 한 줄에 하나씩 주어진다:
한 줄에 각 함수의 리턴값을 공백으로 구분해서 출력해야 한다.
1 <= n <= 1,000 그리고 모든 key값의 범위는 0 이상 1,000-1 이하. value는 -10^9 이상 10^9 이하.
1 <= n <= 100,000 그리고 모든 key값의 범위는 0 이상 (10^99)-1 이하. value는 -10^9 이상 10^9 이하.
12 1 27 30 1 25 40 3 17 1 17 20 1 5 50 2 10 20 2 25 30 3 25 3 17 1 27 20 2 10 20 2 25 30
30 70 70 90 140 20 70 100 80 100 0 50
8 1 2 10 1 4 10 1 15 10 2 2 15 2 3 14 3 4 3 10 2 4 15
10 20 30 30 10 20 20 10
입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다.
C++을 사용하고 있고 cin
/cout
을 사용하고자 한다면, cin.tie(NULL)
과 sync_with_stdio(false)
를 둘 다 적용해 주고, endl
대신 개행문자(\n
)를 쓰자. 단, 이렇게 하면 더 이상 scanf
/printf
/puts
/getchar
/putchar
등 C의 입출력 방식을 사용하면 안 된다.
Java를 사용하고 있다면, Scanner
와 System.out.println
대신 BufferedReader
와 BufferedWriter
를 사용할 수 있다. BufferedWriter.flush
는 맨 마지막에 한 번만 하면 된다.
Python을 사용하고 있다면, input
대신 sys.stdin.readline
을 사용할 수 있다. 단, 이때는 맨 끝의 개행문자까지 같이 입력받기 때문에 문자열을 저장하고 싶을 경우 .rstrip()
을 추가로 해 주는 것이 좋다.