알고리즘

C++ 알고리즘 - 백준 2485 가로수

마루설아 2025. 1. 12. 01:08

https://www.acmicpc.net/problem/2485

 

#include <bits/stdc++.h>
#define endl "\n"

using namespace std;

void CPP_INIT() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
}

int gcd(int n1, int n2)
{
	if (n2 == 0) return n1;
	return gcd(n2, n1 % n2);
}

int main(void) {
	CPP_INIT();

	int input1, input2;
	int cha;
	vector<int> v;
	vector<int> c;

	cin >> input1;

	for (int i = 0; i < input1; i++) {
		cin >> input2;
		v.push_back(input2);

		if (i > 0) {
			c.push_back(v[i] - v[i - 1]);
		}
	}

	cha = c[0];
	for (int i = 0; i < c.size(); i++) {
		cha = gcd(cha, c[i]);
	}

	int n = v[v.size() - 1] - v[0];
	int answer = n / cha - (input1 - 1);

	cout << answer;
}