#include<cstdio> #include<cstdlib> int s[100001], n; long long f(int x) { long long ret = 0; for (int i = 1; i <= n; i++) ret += abs(s[i] - x); return ret; } int main() { scanf("%d", &n); for (int i = 1, x, y; i <= n; i++) { scanf("%d%d", &x, &y); s[i] = s[i - 1] + y - x; } int low = 0, up = 2e8, mid; while (low < up) { mid = low + up >> 1; f(mid - 1e8) < f(mid - 1e8 + 1) ? up = mid : low = mid + 1; } printf("%lld", f(up - 1e8)); return 0; }
5888번: Haybale Restacking
https://www.acmicpc.net/problem/5888
라벨:
*
,
풀이쓸예정
,
BOJ
,
greedy algorithm
,
parametric search
피드 구독하기:
댓글
(
Atom
)
댓글 없음 :
댓글 쓰기