比赛 |
哈哈哈 |
评测结果 |
WWAWWWWTTT |
题目名称 |
跳石头 |
最终得分 |
10 |
用户昵称 |
皮皮123 |
运行时间 |
3.869 s |
代码语言 |
C++ |
内存使用 |
3.42 MiB |
提交时间 |
2019-03-07 21:59:58 |
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
freopen("2015stone.in","r",stdin);
freopen("2015stone.out","w",stdout);
int l,n,m,a[50010],b[50010],mi=999999999,d,p=0,q=1,s=1,q1,s1;
cin>>l>>n>>m;
a[0]=0;
a[n+1]=l;
a[n+2]=99999999;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n+1;i++){
b[i]=a[i]-a[i-1];
}
a[0]=99999999;
while(m!=0){
m--;
for(int i=1;i<=n+1;i++){
if(mi>=b[i]&&b[i]!=-1){
mi=b[i];
d=i;
}
}
while(p!=1){
if(b[d+s]!=-1&&b[d-q]!=-1){
p=1;
}
else{
if(b[d+s]==-1){
s++;
}
if(b[d-q]==-1){
q++;
}
}
}
q1=d-q;
s1=d+s;
if(b[q1]>=b[s1]){
b[d]=b[d]+b[s1];
b[s1]=-1;
}
else{
b[d]=b[d]+b[q1];
b[q1]=-1;
}
mi=999999999;
p=0;
s=1;
q=1;
}
for(int i=1;i<=n+1;i++){
if(mi>=b[i]&&b[i]!=-1){
mi=b[i];
}
}
cout<<mi;
return 0;
}