题目链接:点击打开链
#include <cstdio> #include <vector> #include <algorithm> using namespace std; typedef long long ll; vector<int> s; int main() { int n, k; while (~scanf("%d%d", &n, &k)) { s.clear(); int sum = 0, cnt = 0; for(int i = 0, x, y; i < n; i ++) { scanf("%d%d", &x, &y); if(x > y) sum += 3; else if(x == y) { cnt ++; sum ++; } else s.push_back(y-x); } if(k >= cnt) { sum += 2*cnt; k -= cnt; } else { sum += 2*k; k = 0; } sort(s.begin(), s.end()); for(int i = 0; i < s.size() && k > 0; i ++) { if(k > s[i]) { sum += 3; k -= s[i]+1; } else if(k == s[i]) { sum += 1; k -= s[i]; } } printf("%d ", sum); } return 0; }