-
[2485] 가로수BOJ 2022. 1. 12. 21:46
https://www.acmicpc.net/problem/2485
2485번: 가로수
첫째 줄에는 이미 심어져 있는 가로수의 수를 나타내는 하나의 정수 N이 주어진다(3 ≤ N ≤ 100,000). 둘째 줄부터 N개의 줄에는 각 줄마다 심어져 있는 가로수의 위치가 양의 정수로 주어지며, 가
www.acmicpc.net
<문제>
나무를 심는 길이는 크면 클수록 좋다. 인접한 가로수 사이의 간격을 전부 __gcd()를 가하면
나무를 심는게 가능하면서, 길이가 최대인 값을 찾을 수 있다.
이 값을 찾은 뒤에는, ((가장 큰 값)-(가장 작은 값))/(나무를 심는 간격)-n+1이 답이된다.
<소스코드>
123456789101112131415161718#include <bits/stdc++.h>using namespace std;int n, len, ans;vector<int> a, v;int main(void) {ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin >> n;int i;a.resize(n);for (i = 0; i < n; i++) cin >> a[i];for (i = 0; i + 1 < n; i++) v.push_back(a[i + 1] - a[i]);len = __gcd(v[1], v[0]);for (i = 1; i < v.size(); i++) len = __gcd(len, v[i]);cout << (a[n - 1] - a[0]) / len - n + 1;return 0;}cs 'BOJ' 카테고리의 다른 글
[1826] 연료 채우기 (0) 2022.01.15 [13015] 별 찍기 - 23 (0) 2022.01.14 [1966] 프린터 큐 (0) 2022.01.12 [2805] 나무 자르기 (0) 2022.01.12 [17141] 연구소 2 (0) 2022.01.09