社区讨论
NOIP T1求助
学术版参与者 3已保存回复 19
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 19 条
- 当前快照
- 1 份
- 快照标识符
- @mil78cs9
- 此快照首次捕获于
- 2025/11/30 12:07 3 个月前
- 此快照最后确认于
- 2025/12/05 21:44 2 个月前
candy6 输出82 为什么,但民间数据AC
CPP#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e5;
int n,m,sum = LONG_LONG_MAX,minx,ans,b[N + 5];
struct node{
int x,y;
bool operator < (const node &a) const{
return a.x > x;
}
};
node a[N + 5];
signed main(){
cin >> n >> m;
for(int i = 1;i <= n;i++){
cin >> a[i].x >> a[i].y;
}
sort(a + 1,a + 1 + n);
for(int i = 1;i <= n;i++){
if(sum > a[i].x + a[i].y){
sum = a[i].x + a[i].y;
minx = a[i].x;
}
}
for(int i = 1;i <= n;i++){
if(a[i].x > sum / 2)
break;
if(m >= a[i].x){
m -= a[i].x;
ans++;
} else
break;
}
int k = m / sum;
m -= k * sum;
ans += 2 * k;
if(m > 0){
for(int i = 1;i <= n;i++){
if(a[i].x <= sum / 2)
b[i] = a[i].y;
else
b[i] = a[i].x;
}
sort(b + 1,b + 1 + n);
for(int i = 1;i <= n;i++){
if(m >= b[i])
m -= b[i],ans++;
else
break;
}
}
cout << ans << endl;
}
回复
共 19 条回复,欢迎继续交流。
正在加载回复...