记录编号 |
528491 |
评测结果 |
WWAWWWWTTT |
题目名称 |
[NOIP 2015]跳石头 |
最终得分 |
10 |
用户昵称 |
皮皮123 |
是否通过 |
未通过 |
代码语言 |
C++ |
运行时间 |
3.887 s |
提交时间 |
2019-03-07 22:08:32 |
内存使用 |
3.42 MiB |
显示代码纯文本
#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];
}
b[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++;
}
}
}
s1=d-q;
q1=d+s;
if(b[s1]>=b[q1]){
b[d]=b[d]+b[q1];
b[q1]=-1;
}
else{
b[d]=b[d]+b[s1];
b[s1]=-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;
}