BOJ 1263 - 시간 관리
제일 마감기한이 늦는 일부터 그리디하게 채워주면 된다.
오랜만에 본 골드웰노운 문제
void solve() {
int n;
cin >> n;
vector<pi> a(n);
for (auto &[t, s]: a) cin >> t >> s;
sort(all(a), [&](auto &a, auto &b) {
return a.se < b.se;
});
int ans = 1e9;
for (int s = 1000000, i = n - 1; s >= 0; s--) {
while (i >= 0 && a[i].se == s) {
ans = min(ans - a[i].fi, s - a[i].fi);
i--;
}
}
if (ans < 0) cout << -1;
else cout << ans;
}
Comments