题目描述
输入
输出
样例输入
5 50
5 3
1 1
10 4
7 2
60 1
样例输出
8
分析:这就是个简单贪心。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#include <iostream> #include <string> #include <cstdio> #include <cmath> #include <cstring> #include <algorithm> #include <vector> #include <queue> #include <deque> #include <map> #define range(i,a,b) for(int i=a;i<=b;++i) #define LL long long #define rerange(i,a,b) for(int i=a;i>=b;--i) #define fill(arr,tmp) memset(arr,tmp,sizeof(arr)) using namespace std; pair<LL,LL>fuck[100005]; int n,m; LL ans; bool cmp(pair<LL,LL>a,pair<LL,LL>b){ return a.first<b.first; } void init() { cin>>n>>m; range(i,1,n)cin>>fuck[i].first>>fuck[i].second; sort(fuck+1,fuck+1+n,cmp); } void solve(){ range(i,1,n){ LL MIN=min(m/fuck[i].first,fuck[i].second); ans+=MIN;m-=MIN*fuck[i].first; } cout<<ans<<endl; } int main() { init(); solve(); return 0; }