$O(n)$
수가 a1, a2, ..., an 주어져 있다고 하자.
sum(ai<ai+1)(ai+1-ai)+max(ai)-an이 답이다.
#include<cstdio> int n, m, a, t; long long r; int main() { scanf("%d %d", &n, &t); m = t; for (int i = 1; i < n; i++) { scanf("%d", &a); r += (a > t)*(a - t); t = a; if (t > m) m = t; } printf("%lld", r + m - t); return 0; }
댓글 없음 :
댓글 쓰기