for (int i = 0; i < n; i++)
dp[i] = max(dp[i-1], a[i]);
// Binary search on answer
while (lo <= hi) {
int mid = (lo + hi) / 2;
if (check(mid)) ans = mid;
}
void dfs(int u) {
visited[u] = 1;
for (int v : adj[u])
if (!visited[v]) dfs(v);
}
CPTeamBHH
Nền tảng luyện tập và giảng dạy
Lập trình thi đấu cho Đội tuyển HSG Tin học
Bài giảng có hệ thống — Từ cơ bản đến nâng cao, bao gồm DP, Đồ thị, …
Chấm bài tự động — Hệ thống judge với testcase chuẩn, hỗ trợ C++
Trao đổi trực tuyến — Chat nhóm, chia sẻ code snippet và hình ảnh