📄 attemper.cpp
字号:
#include <iostream>
using namespace std;
int main()
{
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
int e1,e2,x1,x2,n,*f1,*f2,*g1,*g2,*l1,*l2,*t1,*t2,i,j,f,l;
cout<<"请分别输入进入两条装配线的时间:"<<endl;
cin>>e1>>e2;
cout<<"请分别输入离开两条装配线的时间:"<<endl;
cin>>x1>>x2;
cout<<"输入两条装配线的长度:"<<endl;
cin>>n;
cout<<"输入第一条装配线各装配器的时间:"<<endl;
g1=new int[n+1];
f1=new int[n+1];
l1=new int[n+1];
t1=new int[n+1];
for(i=1;i<=n;i++)
cin>>g1[i];
cout<<"输入第二条装配线各装配器的时间:"<<endl;
f2=new int[n+1];
g2=new int[n+1];
l2=new int[n+1];
t2=new int[n+1];
for(i=1;i<=n;i++)
cin>>g2[i];
cout<<"输入从第一条装配线到第二条装配线的各个时间:"<<endl;
for(i=1;i<=n-1;i++)
cin>>t1[i];
cout<<"输入从第二条装配线到第一条装配线的各个时间:"<<endl;
for(i=1;i<=n-1;i++)
cin>>t2[i];
f1[1]=e1+g1[1];
f2[1]=e2+g2[1];
l1[1]=1;
l2[1]=2;
for(j=2;j<=n;j++)
{
if(f1[j-1]+g1[j]<=f2[j-1]+g1[j]+t2[j-1])
{
f1[j]=f1[j-1]+g1[j];
l1[j]=1;
}
else
{
f1[j]=f2[j-1]+g1[j]+t2[j-1];
l1[j]=2;
}
if(f2[j-1]+g2[j]<=f1[j-1]+g2[j]+t1[j-1])
{
f2[j]=f2[j-1]+g2[j];
l2[j]=2;
}
else
{
f2[j]=f1[j-1]+g2[j]+t1[j-1];
l2[j]=1;
}
}
if(f1[n]+x1<=f2[n]+x2)
{
f=f1[n]+x1;
l=1;
}
else
{
f=f2[n]+x2;
l=2;
}
cout<<"最短路线需耗时:"<<endl<<f<<endl;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -