#include<stdio.h> #include<algorithm> using namespace std; pair<int, int> p[100001]; int n, m; int main() { scanf("%d %d", &n, &m); for (int i = 1; i <= n; i++) { scanf("%d %d", &p[i].second, &p[i].first); p[i].second *= -1; } sort(p + 1, p + 1 + n); int s = 0, c = 0, mini = 0x7fffffff, flag = 0; for (int i = 1; i <= n; i++) { s -= p[i].second; if (p[i].first == p[i - 1].first) c += p[i - 1].first; else c = 0; if (s >= m) mini = min(mini, p[i].first + c), flag = 1; } printf("%d", flag ? mini : -1); return 0; }
2258번: 정육점
https://www.acmicpc.net/problem/2258
피드 구독하기:
댓글
(
Atom
)
댓글 없음 :
댓글 쓰기