Witam.
Mam problem z opracowaniem algorytmu, który w zasadzie ma robić to, co widnieje w nazwie tematu, natomiast szczegóły i źródło to: main.edu.pl/pl/user.phtml?op=showtask&task=prze&con=PAS
Napisałem taki (mam nadzieję, że algorytm może być przedstawiony w zapisie a'la C++)
UWAGI: przedz[i][0] oraz przedz[i][1] to kolejno: początek i koniec i-tego przedziału (i przebiega od 0 do n-1); ile_rozl to szukana liczba
ile_rozl = 1;
aktualny_koniec = przedz[0][1];
for( i = 0; i < n ; ++i)
{
if(i)
{
if(przedz[i][1] <= aktualny_koniec) continue;
}
bool czy_zachodzi = false;
for( j = i + 1; j < n; ++j)
{
if(przedz[j][0] <= aktualny_koniec + 1 && przedz[j][1] >= aktualny_koniec + 1)
{
czy_zachodzi = true;
aktualny_koniec = przedz[j][1];
i = j - 1;
break;
}
}
if(!czy_zachodzi)
{
ile_rozl++;
for(k = i + 1; k < n; ++k)
{
if( przedz[k][1] >= aktualny_koniec + 1)
{
aktualny_koniec = przedz[k][1];
i = k;
break;
}
}
}
}
Daje on błędne odpowiedzi...
Proszę o pomoc, jak go naprawić, tudzież napisać inny.