Cześć wszystkim. Sprawdziłem zestawy przykładowe podane w zadaniu, program dla nich działa. Działa także dla zestawów, które ktoś podsunął w komentarzach, więc naprawdę nie wiem, dlaczego dla sędziego nie działa
Czy ktoś może mi podpowiedzieć, co robię źle? Jestem dopiero na początku nauki programowania; właściwie przerobiłem dopiero 2/3 kursu Mirosława Zelenta na yt
#include
using namespace std;
int m, liczba_miast, zysk, zyskm, mi, maks_suma_lewa, maks_suma_prawa, suma_czastkowa_prawa, suma_czastkowa_lewa;
int main()
{
cin>>liczba_miast;
int *zysk_strata;
zysk_strata = new int [liczba_miast];
for (int i=0; i<liczba_miast; i++)
{
cin>>zysk_strata[i];
}
m=zysk_strata[0];
for (int i=0; i<liczba_miast; i++)
{
if (zysk_strata[i]>m)
{
m=zysk_strata[i];
}
}
for (int i=0; i<liczba_miast; i++)
{
if (m==zysk_strata[i])
{
mi=i;
maks_suma_lewa=m;
suma_czastkowa_lewa=m;
for (int i=mi; i>0; i--)
{
suma_czastkowa_lewa=suma_czastkowa_lewa+zysk_strata[i-1];
if (suma_czastkowa_lewa>=maks_suma_lewa)
{
maks_suma_lewa=suma_czastkowa_lewa;
}
}
maks_suma_prawa=m;
suma_czastkowa_prawa=m;
for (int i=mi; i<liczba_miast-1; i++)
{
suma_czastkowa_prawa=suma_czastkowa_prawa+zysk_strata[i+1];
if (suma_czastkowa_prawa>=maks_suma_prawa)
{
maks_suma_prawa=suma_czastkowa_prawa;
}
}
zysk=maks_suma_lewa+maks_suma_prawa-m;
zyskm=zysk;
if (zysk>zyskm)
{
zyskm=zysk;
}
}
}
if (zyskm<=0)
{
zyskm=0;
}
cout<<zyskm;
return 0;
}
created
last reply
- 16
replies
- 1.7k
views
- 4
users
- 3
likes
- 5
links