# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1132915 | Off_exe118 | Comparing Plants (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;
}