https://www.acmicpc.net/problem/1059
1059번: 좋은 구간
[9, 10], [9, 11], [9, 12], [10, 11], [10, 12]
www.acmicpc.net
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int L = Integer.parseInt(br.readLine());
ArrayList<Integer> S = new ArrayList<>();
StringTokenizer st = new StringTokenizer(br.readLine());
for(int i=0; i<L; i++) {
S.add(Integer.parseInt(st.nextToken()));
}
Collections.sort(S);
int n = Integer.parseInt(br.readLine());
int right = -1;
int left = -1;
int ans = -1;
int idx = -1;
for(int i=0; ; i++) {
if(S.get(i)>n) {
idx = i;
break;
}
if(S.get(i)==n) {
ans = 0;
break;
}
}
if(ans!=0) {
if(idx==0) {
left = 1;
right = S.get(idx)-1;
int num = n-left+1;
ans = num*(right-n+1);
ans--;
}
else {
right = S.get(idx)-1;
left = S.get(idx-1)+1;
if(left==right) {
ans = 0;
}
else {
if(n==left) {
ans = right-n;
}
else if(n==right) {
ans = n-left;
}
else {
int num = n-left+1;
ans = num*(right-n+1);
ans--;
}
}
}
}
bw.write(ans+"");
bw.close();
}
}
'백준' 카테고리의 다른 글
백준 수학 - 1075번 : 나누기 (0) | 2022.03.10 |
---|---|
백준 동적계획법 - 9215번 : LCS (0) | 2022.03.06 |
백준 동적 계획법 - 2565번 : 전깃줄 (0) | 2022.03.06 |
백준 동적계획법 - 11054번 : 가장 긴 바이토닉 부분 수열 (0) | 2022.03.05 |
백준 동적 계획법 - 11053번 : 가장 긴 증가하는 부분 수열 (0) | 2022.03.05 |