#include <stdio.h>
int main()
{int n,time,a[100000],i;
while(scanf("%d",&n)&& n!=0)
{
time=0;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
time+=a[0]*6+5;
for(i=1;i<n;i++)
{
if(a[i]>a[i-1])
time+=(a[i]-a[i-1])*6+5;
if(a[i]<a[i-1])
time+=(a[i-1]-a[i])*4+5;
}
printf("%d\n",time);
}
return 0;
}
传上去错误。
#include <stdio.h>
int main()
{int n,time,a[100000],i;
while(scanf("%d",&n)&& n!=0)
{
time=0;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
time+=a[0]*6+5;
for(i=1;i<n;i++)
{
if(a[i]>a[i-1])
time+=(a[i]-a[i-1])*6+5;
else
time+=(a[i-1]-a[i])*4+5;
}
printf("%d\n",time);
}
return 0;
}
这次正确。问题在于上下两次都是同一层的话应该多加5秒,这里没有考虑到。