Ostatnie posty

Już wrzuciłem kod, który powstał w trakcie wykładu, tzn. dokładnie ten sam na którym pokazywałem działanie rzeczy z wykładu. Jest on niestety dosyć chaotycznie napisany (jest tam wszystko), ale mam nadzieję, że uda się wam odzyskać to co jest potrzebne. Ogólnie to bardzo zachęcam do własnoręcznego zaimplementowania zaprezentowanych algorytmów.
Kiedy będą pliki z wykładu?
Zauważ, że program nie wykonuje polecenia zadania.
Powinieneś podawać maksa dla każdego zapytania, ty robisz to dopiero na końcu, po wszystkich.

HINT: http://ntpd.eu/ryK6k
https://ideone.com/WYK4ZJ - proszę bardzo.
Czy mógłbyś wejść na stronę ideone.com, tam wkleić rozwiązanie i wysłać linka? Kod w takiej formie jaką dałeś tutaj jest nieczytelny.
Jak w temacie, nie wiem czy mój kod się nadaje. Wiem, jedynie że nie jest zoptymalizowany, ale jest ok (oprocz obliczania przekatnych, nie wiem jak go wykonać). Nie wiem jak mam siebie ocenić, więc prosiłbym o jakąś ocenę, gdyż mam inny punkt myślenia (zadanie Pionki):

---------------------------------------

#include <iostream>

using namespace std;

int x=0,y=0,a,b,c,j=0,i=0,k=0,l=0,counter=0,maks=0,z=0,g=0,zet=0,countertwo=x,maksz=0;

int main()
{
cin >> y >> x >> a;
int ruchpotablicy[x*y];
for(i=0; i<=ruchpotablicy[x*y]; i++)
{
ruchpotablicy[i]=0;
}
for(k=0; k<a; k++)
{
cin >> b >> c;
b--;
c--;
ruchpotablicy[b*x+c]=1;
}
for(j=0; j<x*y; j++)
{
if((j%x==0)&&(j!=0))
{
cout << "\n";
}
cout << ruchpotablicy[j];
}
for(j=0; j<x*y; j++)
{
if(ruchpotablicy[counter+j]==1)
{
z++;
}
if(z>maks)
{
maks=z;
}
if((j%x==0)&&(j!=0))
{
counter++;
z=0;
}
}
z=0;
counter=0;
for(zet=0; zet<x*y+x; zet++)
{
if(ruchpotablicy[counter+g]==1)
{
z++;
}
counter=counter+x;
if(z>maks)
{
maks=z;
}
if(counter>x*y)
{
counter=0;
g++;
z=0;
}
}
z=0;
for(zet=0; zet<x*y+x; zet++)
{
if((ruchpotablicy[countertwo]==1)&&(ruchpotablicy[countertwo-(x-1)]))
{
z++;
} else if((ruchpotablicy[countertwo]==1)&&(ruchpotablicy[countertwo-(x-1)])) maksz++;
else
{
maksz=z;
z=0;
}
countertwo++;
}
if(z>maksz)
{
maks=maksz;
}
countertwo=0;
z=0;
for(zet=0; zet<x*y+x; zet++)
{
if((ruchpotablicy[countertwo]==1)&&(ruchpotablicy[countertwo-(x+1)]))
{
z++;
} else if((ruchpotablicy[countertwo]==1)&&(ruchpotablicy[countertwo-(x+1)])) maksz++;
else
{
maksz=z;
z=0;
}
countertwo++;
}
if(z>maksz)
{
maks=maksz;
}
cout << "\n" << maks;
/*for(l=0; l<a; l++)
{
nie wiem dokladnie co tu miało byc
}*/
}
Nie ma typu long long double, jest tylko long double (ale mieści w sobie wszystkie liczby z zakresu long longa).
Dzięki za pomoc
Uprościłem to trochę, może być na przykład tak, że testy do podzadania za 33pkt. są podzielone na dwie lub więcej grup testów. Warto powiedzieć, że otrzymujesz punkty, tylko jeśli twoje rozwiązanie będzie działać dla wszystkich testów z grupy.
Testy wstępne, które wyświetlają się od razu po wysłaniu rozwiązania, to nie wszystkie testy, którym będzie poddane twoje rozwiązanie.

Idąc dalej, testy są podzielone na grupy.
Jeśli w treści masz podzadania np.:
33 pkt. - N <= 10^3
41 pkt. - N = 1,
znaczy to, że jeśli twój program będzie dobrze działał dla testów z grupy 1, otrzyma 33pkt. Jeśli będzie poprawny dla N = 1, otrzyma punktów 41. 100pkt. otrzymasz za rozwiązanie całkowicie poprawne.
Jeżeli w zadaniu średnia program odpowiada dobrze na wszystkie testy, ale w ostatnim nie mieści się w czasie, to znaczy, że jest to dodatkowe ograniczenie N ≤ 10^3?
Sam BFS jest OK, błąd popełniasz przy tworzeniu sąsiadów.
Po pierwsze: dodawanie opcji 2 robisz dwa razy.
Po drugie: Warunki są złe. Dla pola (6,1), będącego u ciebie wierzchołkiem 26, dodasz jako sąsiada wierzchołek 25(i-1 >= 1), co jest błędem, bo jest on w poprzednim rzędzie. Zastanów się nad tym.

Mam również parę protipów:
- dla mnie łatwiej jest przedstawić grid jako tablicę dwuwymiarową(np.: tab[n][m]), a nie tab[n*m], myślę, że to mogło być dla ciebie źródłem kłopotów
- zamiast not możesz używać wykrzyknika
- zamiast false/true możesz pisać 0/1
Te dwie ostatnie porady są głównie wizualne, ale przyspieszają pisanie kodu, co czasami okazuje się przydatne.
W Twoim numerowaniu, te dwa pola zaznaczone X-em sąsiadują ze sobą, mimo że są w różnych wierszach.

____
___X
X___
____
Ostatnie kompilujące się.
Czy ilosc punktow za zadanie to ostatnie zgloszenie, czy maksimum punktow z wszystkich zgloszen?