NC229311. 采集灵石
描述
输入描述
第一行两个正整数 分别表示浮岛的数量和牛牛手中初始的灵石数量。
接下来 行,每行两个正整数,第 行的正整数 表示第 个浮岛上今日刷新的灵石数量, 表示传送到第 个浮岛所需的灵石数量。
输出描述
一个正整数,表示牛牛今天采集后最多能拥有的灵石数量。
示例1
输入:
3 5 4 3 4 3 4 3
输出:
8
示例2
输入:
2 1 5 2 8 2
输出:
1
示例3
输入:
2 6 2 3 4 3
输出:
7
C++ 解法, 执行用时: 69ms, 内存消耗: 1144K, 提交时间: 2021-10-19 15:47:15
#include<bits/stdc++.h> using namespace std; const int N=1e6+9; struct v { int a,b; }a[N];int n,k; int p(v x,v y) { return x.b<y.b; }int main() { cin>>n>>k; for(int i=1;i<=n;i++) cin>>a[i].a>>a[i].b; sort(a+1,a+n+1,p); for(int i=1;i<=n;i++) if(a[i].a>a[i].b&&a[i].b<=k)k+=a[i].a-a[i].b; cout<<k; }