관리 메뉴

너와 나의 스토리

(BOJ) 15975 화살표 그리기 본문

Algorithm/기타

(BOJ) 15975 화살표 그리기

노는게제일좋아! 2019. 7. 14. 17:54
반응형

문제: https://www.acmicpc.net/problem/15975

 

문제 풀이:

https://hororolol.tistory.com/140 이 문제에서 long long으로 바꿔주고 

색이 하나 일 수도 있으므로 하나일 때는 연산 스킵해주면 됨

 

소스 코드:

typedef long long ll;
int n;
ll res;

int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL), cout.tie(NULL);

	unordered_map<ll, vector<ll>> m;
	cin >> n;
	for (int i = 0; i < n; i++) {
		int q, w;
		cin >> q >> w;
		m[w].push_back(q);
	}
	for (auto next : m) {
		vector<ll> v = next.second;
		int len = v.size();
		if (len == 1) continue;
		sort(v.begin(), v.end());
		res += v[1] - v[0];
		for (int i = 1; i < len - 1; i++) {
			res += min(v[i + 1] - v[i], v[i] - v[i - 1]);
		}
		res += v[len - 1] - v[len - 2];
	}
	cout << res << '\n';
	return 0;
}

 

반응형

'Algorithm > 기타' 카테고리의 다른 글

(BOJ) 1965 상자 넣기  (0) 2019.07.18
(BOJ) 15976 XCorr (테스트 케이스)  (0) 2019.07.14
(BOJ) 15973 두 박스  (0) 2019.07.14
(BOJ) 15970 화살표 그리기  (0) 2019.07.14
(BOJ) 14444 가장 긴 팰린드롬 부분 문자열  (0) 2019.07.11
Comments