随便抄
2025-05-03 15:57:48
发布于:浙江
4阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define endl '\n'
ll n,m,k,a[200005],b[200005];
bool fff(ll x){
ll z=0;
for (int i=1;i<=n;i++) if (a[i]+b[i]*x>=k) z++;
return z>=m;
}
bool cmp(pair<ll,ll> x,pair<ll,ll> y){
return x.first==y.first?x.second<y.second:x.first>y.first;
}
int main(){
cin>>n>>m>>k;
for (int i=1;i<=n;i++) cin>>a[i];
for (int i=1;i<=n;i++) cin>>b[i];
ll l=0,r=1e9,mid;
while(l!=r){
mid=l+r>>1;
if (fff(mid)) r=mid;
else l=mid+1;
}
cout<<l<<endl;
ll z=0;
vector<pair<ll,ll>> e;
for (int i=1;i<=n;i++){
a[i]+=b[i]*l;
if (a[i]>=k) z++,e.push_back({a[i],i});
}
cout<<z<<endl;
sort(e.begin(),e.end(),cmp);
for (auto u:e){
cout<<u.second<<' ';
}
return 0;
}
这里空空如也
有帮助,赞一个