| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 0.5 초 (추가 시간 없음) | 1024 MB (추가 메모리 없음) | 1042 | 683 | 602 | 65.435% |
성우는 요즘 박자에 맞춰 두 개의 노브를 정확히 조작해야 하는 리듬 게임에 빠져 있다. 노브 시스템은 다음과 같은 특징을 가지고 있다.
성우가 지금 플레이하는 곡의 길이는 $T$이다. 이 곡의 $t$번째 박자에서는 $l_t$의 값에 따라 왼쪽 노브를, $r_t$의 값에 따라 오른쪽 노브를 각각 다음과 같이 조작해야 한다. $(1 \leq t \leq T)$
이때, 성우가 느끼는 곡의 재미도는 매 박자에 다음과 같이 측정된 값의 총합이다.
성우는 재미도를 계산할 여유가 없다. 여러분이 성우를 위해 이를 대신 구해주자!
첫 번째 줄에 곡의 길이를 나타내는 정수 $T$가 주어진다. $(1 \leq T \leq 200\, 000)$
$2$번째 줄부터 $T+1$번째 줄까지, $t + 1$번째 줄에 $t$번째 박자의 노브 조작 방법을 의미하는 두 정수 $l_t,\ r_t$가 공백을 사이에 두고 주어진다. 각 수는 $-1,\ 0,\ 1$ 중 하나다.
첫 번째 줄에 성우가 생각하는 곡의 재미도를 출력한다.
1 -1 -1
1
5 0 1 1 1 0 0 -1 1 -1 0
3
8 1 0 1 0 1 0 1 0 -1 0 -1 0 -1 0 -1 0
6
2 1 0 1 1
2
3 1 1 1 1 -1 -1
5
입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간 초과를 받을 수 있으므로, 언어별로 다음 방법을 사용하는 것이 권장된다.
cin/cout을 사용하고자 한다면, main 함수의 첫 줄에 아래 두 줄을 입력하고, 입력을 받을 때 endl 대신 개행 문자(\n)를 사용해야 한다. 단, 이렇게 하면 더 이상 scanf/printf/puts/getchar/putchar 등 C의 입출력 방식을 사용하면 안 된다.
cin.tie(nullptr);sync_with_stdio(false);input 대신 아래 코드를 사용한다.
sys.stdin.readline.rstrip()Scanner와 System.out.println 대신 BufferedReader와 BufferedWriter를 사용한다. BufferedWriter.flush는 프로그램 종료 전에 한 번만 하면 된다.
University > 서강대학교 > Sogang Programming Contest > 2023 Sogang Programming Contest > Master A번