🎆音乐分享
1030-丢手绢_2021秋季算法入门班第一章习题:模拟、枚举、贪心 (nowcoder.com)
因为
所以为
if (d[j]-d[k] > sum/2) dis=sum-(d[j]-d[k]);
#include<bits/stdc++.h>
using namespace std;
int n,dis=0,maxd=-1,k=0,j=1;
double sum=0;
int d[100010];
int main () {
cin>>n;
for (int i=1;i<=n;i++) {
cin>>d[i];
sum += d[i];
d[i] += d[i-1];//求距离
}
for (;k<n;k++) {
for (;j<=n;j++) {
if (d[j]-d[k] > sum/2) dis=sum-(d[j]-d[k]);
else dis = d[j]-d[k];
maxd = max(maxd,dis);
if (d[j]-d[k] > sum/2) break;
}
}
cout<<maxd;
return 0;
}
Code over!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/131372.html