# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1132915 | Off_exe118 | 식물 비교 (IOI20_plants) | C++20 | 0 ms | 0 KiB |
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
// Hàm tính số phép biến đổi tối thiểu
long long minimum_operations(vector<int>& h) {
int n = h.size();
vector<int> d(n);
d[0] = h[0]; // Giá trị chênh lệch đầu tiên là chính nó
for (int i = 1; i < n; ++i) {
d[i] = h[i] - h[i - 1];
}
long long operations = 0; // Số phép biến đổi
for (int i = 0; i < n; ++i) {
operations += abs(d[i]); // Tổng giá trị tuyệt đối của các chênh lệch
if (i + 1 < n) {
d[i + 1] -= d[i]; // Chuyển giá trị chênh lệch sang phần tử tiếp theo
}
d[i] = 0; // Đưa d[i] về 0
}
return operations;
}
int main() {
// Đọc input
int n;
cin >> n;
vector<int> h(n);
for (int i = 0; i < n; ++i) {
cin >> h[i];
}
// Tính và in kết quả
cout << minimum_operations(h) << endl;
return 0;
}