- 取石子
进击的俄方(某某游戏)
- 2025-10-4 10:12:38 @
#include<bits/stdc++.h>
using namespace std;
int a[100010];
int main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+n+1);
int l=a[1],r=a[n];
while(l<r){
int cnt=1,k=a[1];
int mid=(l+r+1)/2;
for(int i=1;i<=n;i++){
if(a[i]-k>=mid){
cnt++;
k=a[i];
}
}
if(cnt>=m){
l=mid;
}
else{
r=mid-1;
}
}
cout<<l;
return 0;
}
1 条评论
-
IAN @ 2025-10-4 12:16:45
#include <bits/stdc++.h> using namespace std; int a[100010]; int main() { int n, x, y; cin >> n; for(int i = 1; i <= n; i++) { cin >> a[i]; a[i]+=a[i-1]; } cin >> x >> y; for(int i = 1; i <= n; i++) { int d=a[i-1], d2=a[n]-a[i-1]; if(d2>=x&&d2<=y&&d>=x&&d<=y) { cout<<i; return 0; } } cout<<0; return 0; }
- 1
信息
- ID
- 116
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- 递交数
- 56
- 已通过
- 9
- 上传者