Robię właśnie zadanie z tej strony: http://main.edu.pl/pl/archive/oi/13/kra
Mój pomysł na rozwiązanie go polega na tym,że od początkowej głębokości tuby odcinam te miejsca w dół,gdzie krążek nie może już wejść. Wiem,że problem leży gdzieś w pętli while,ale nie wiem co konkretnie robię tam źle. Bardzo proszę o pomoc!
include <iostream>
using namespace std;
int main()
{
int ileKrazkow = 0;
int glebokosc = 0;
int poziomTuby,krazek = 0;
cin >> glebokosc;
int tabSzerTuby[glebokosc];
cin >> ileKrazkow;
int tabSzerKrazkow[ileKrazkow];
for(int i=0; i<glebokosc; i++){ //Wypelniamy tablice z szerokosciami tuby
cin>>tabSzerTuby;
}
for(int i=0; i<ileKrazkow; i++){ // Pobieramy dane dot. wielkosci krazkow
cin>>tabSzerKrazkow;
}
if(ileKrazkow >= glebokosc || glebokosc < 1){ //Sprawdzamy,czy ilosc krazkow nie jest wieksza od ilosci Krazkow lub glebokosc nie jest mniejsza niz 1
cout<<0;
}else if(ileKrazkow == 0){
cout<<glebokosc;
}else{
while((tabSzerKrazkow[krazek] <= tabSzerTuby[poziomTuby]) && (poziomTuby < glebokosc) && (krazek <= ileKrazkow)){ //TU pojawia się problem
poziomTuby++;
}
if(poziomTuby == glebokosc){
glebokosc--;
krazek++;
}if(tabSzerKrazkow[krazek] > tabSzerTuby[poziomTuby]){
glebokosc = poziomTuby - 1;
krazek++;
}
}
cout<<glebokosc;
}