Jak co roku w Bajtocji zima zaskoczyła Bajtockie Koleje Państwowe BKP. Duży mróz powoduje, że szyny pękają i istnieje konieczność ciągłego ich naprawiania. Zakładając, że szyna pękła w N miejscach, gdzie 1≤N≤1000, zaś poszczególne kawałki mają długość 0<L[n]≤10 metrów, gdzie 1≤n≤N, koszt połączenia szyny pomiędzy odcinkami i oraz j, gdzie 1≤i<j≤N, można wyznaczyć obliczając koszt połączenia odcinków od i do k oraz odcinków od k+1 do j, gdzie 1≤i≤k<j≤N oraz dodając do niego sumę L[i]+L[k]+L[j]. Wartość kosztu naprawy całej szyny to koszt połączenia odcinków od 1 do N. Koszt ten zależy od kolejności łączenia odcinków. Napisać program, który wyznaczy minimalny koszt naprawy szyny oraz kolejność łączenia odcinków przy zadanym N oraz zadanych długościach odcinków L[n]. Zadanie należy rozwiązać rekurencyjnie oraz z wykorzystaniem programowania dynamicznego sprawdzając ile czasu potrzeba na realizację każdego z podejść.
Przykład:
Dla N=5 pęknięć i przy odcinkach równych L[1]=4, L[2]=6, L[3]=10, L[4]=9 oraz L[5]=2 optymalny sposób łączenia polega w na łączeniu odcinków po kolei od końca. Koszt takiego łączenia to 66. Przykładowo, przy łączeniu odcinków po kolei od początku koszt ten wynosi 80.
czy to ma prawo być rozwiązaniem zadania??
int N;
cin>>N;
int *L=new int[N];
for(int i=0;i<N;i++)
cin>>L[i];
int suma=0;
if(N>=3)
for(int i=0;i<=N-3;i++)
{
suma+=L[i]+L[i+1]+L[i+2];
}
else
if(N==2)
suma=L[0]+L[1];
if(n==1)
suma=L[0];
cout<<suma;
delete [] L;
Chyba nie rozumiem treści.. i w ogóle nie potrafię dojść w jaki sposób wyszło im 80.. czy liczę od przodu czy od tyłu zawsze jest 66.. i jestem skłonny twierdzić, że te dane to podpucha a ja źle to licze;)