代码如下
#include<iostream>
#include<iomanip>
using namespace std;
double dx,c,dy,p,maxn,ans,sum;
int n,k;
struct node{
double dis,cos;
}dp[10];
bool flag;
void f(int x)
{
int s=x+1;
if(dp[x+1].dis-dp[x].dis>maxn)
{
flag=false;
return;
}
for(int i=x+1;dp[i].dis-dp[x].dis<=maxn;i++)
{
if(dp[i].cos<dp[x].cos)
{
sum=(double)(dp[i].dis-dp[x].dis)/dy*1.0*dp[x].cos;
k=i;
return;
}
if(dp[i].cos<dp[s].cos)
{
s=i;
}
}
sum=(double)(dp[s].dis-dp[x].dis)/dy*1.0*dp[x].cos;
k=s;
}
int main()
{
cin>>dx>>c>>dy>>p>>n;
if(n==0)//0车站直达情况
{
cout<<fixed<<setprecision(2)<<(double)dx/dy*1.0*p<<endl;
return 0;
}
dp[0].dis=0;
dp[0].cos=p;
dp[n+1].dis=dx;
dp[n+1].cos=0;
for(int i=1;i<=n;i++)
{
cin>>dp[i].dis>>dp[i].cos;
}
maxn=c*dy;
int now=0;
while(now<=n+1)
{
flag=true;
sum=0;
f(now);
if(!flag)
{
cout<<"No Solution"<<endl;
return 0;
}
ans+=(double)sum;
now=k;
}
cout<<fixed<<setprecision(2)<<ans<<endl;
return 0;
}
RE点反馈: Runtime Error. Received signal 11: Segmentation fault with invalid memory reference. 运行时错误。
接收到的信号11:内存引用无效的分段故障。
刷了一下午一直没变