Hướng dẫn cho Quản lý phiên làm việc
Chỉ sử dụng khi thực sự cần thiết như một cách tôn trọng tác giả và người viết hướng dẫn này.
Chép code từ bài hướng dẫn để nộp bài là hành vi có thể dẫn đến khóa tài khoản.
Chép code từ bài hướng dẫn để nộp bài là hành vi có thể dẫn đến khóa tài khoản.
Authors:
Chỉ sử dụng khi thực sự cần thiết như một cách tôn trọng tác giả và người viết hướng dẫn này.
Chép code từ bài hướng dẫn để nộp bài là hành vi có thể dẫn đến khóa tài khoản.
💡 HINT / GỢI Ý GIẢI:
- Bản chất bài toán: Thẻ
lastcreateban đầu bằng 0 và chỉ cập nhật khi gặp một ID lớn hơn giá trị hiện tại của nó. Điều này đồng nghĩa với việclastcreatesẽ luôn giữ giá trị lớn nhất trong số các phần tử đã duyệt qua. - Kết luận: Giá trị cuối cùng của thẻ chính là giá trị lớn nhất (Maximum) của cả dãy số.
- Thuật toán tối ưu: Khởi tạo biến
max_val = 0, duyệt qua N phần tử, cập nhậtmax_valkhi gặp số lớn hơn. Độ phức tạp thời gian: O(N), bộ nhớ: O(1).
C++
#include <iostream>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n;
if (!(cin >> n)) return 0;
long long ans = 0;
for (int i = 0; i < n; ++i) {
long long x;
cin >> x;
if (x > ans) {
ans = x;
}
}
cout << ans << "\n";
return 0;
}
Bình luận