Witam!!
Mam problem z zadaniem podróżnik z VI OIG i prosze o pomoc.Mój pomysł opiera się na tym,iż dla każdego zapytania(etapu podróży) przechodze ten etap raz,ustalając dwie zmienne
pion
i poz
i zmniejszając je lub zwiększając w przypadku każdej litery.Zapamiętuje dla obu tych zmiennych max i min z nich,z czego potem otrzymam wynik.Po przejsciu raz licze w nim wystapienia n
i s
oraz e
i w
.I dla każdej tej pary w zależności którego czynnika jest wiecej odejmuje lub dodaje do poz/pion iloczyn roznicy wystapien i k-1
. Potem wypisuje maxpion-minpion
i podobnie z poziomem.Ale nie działa.Czy ktoś mógłby wskazać mi błąd w kodzie/ w pomyśle rozwiązania.Poniżej kod .Z góry dzieki
Kod: Zaznacz cały
#include<iostream>
#include<cmath>
#include<algorithm>
#include<string>
using namespace std;
int main()
{
ios_base::sync_with_stdio(0);
int n;
cin>>n;
int ile;
int maxpion=0;
int minpion=0;
int maxpoz=0;
int minpoz=0;
int poz=0;
int pion=0;
for(int x=0;x<n;++x)
{
string s;
cin>>ile>>s;
int dl=s.size();
int t=ile-1;
int ilen=0;
int iles=0;
int ilee=0;
int ilew=0;
for(int i=0;i<dl;++i)
{
if(s[i]=='N')
{
pion++;
if(pion>maxpion)
{
maxpion=pion;
}
ilen++;
}
else
if(s[i]=='S')
{
pion--;
if(pion<minpion)
{
minpion=pion;
}
iles++;
}
else
if(s[i]=='W')
{
poz++;
if(poz>maxpoz)
{
maxpoz=poz;
}
ilew++;
}
else
if(s[i]=='E')
{
poz--;
if(poz<minpoz)
{
minpoz=poz;
}
ilee++;
}
}
if(ilen>iles )
{
int wy=ilen-iles;
maxpion=maxpion+(pion*t);
pion+=pion*t;
if(pion>maxpion)
maxpion=pion;
}
else
if(ilen<iles )
{
int wy=iles-ilen;
int z=pion;
minpion=minpion-(z*t);
pion-=pion*t;
if(minpion>pion)
minpion=pion;
}
if(ilee<ilew )
{
int wy=ilew-ilee;
maxpoz=maxpoz+(wy*t);
poz+=poz*wy;
if(maxpoz<poz)
maxpoz=poz;
}
if(ilee>ilew )
{
int wy=ilee-ilew;
int z=poz;
minpoz=minpoz-(wy*t);
poz+=poz*wy;
if(poz<minpoz)
minpoz=poz;
}
}
cout<<maxpion-minpion<<" "<<maxpoz-minpoz<<endl;
system("pause");
return 0;
}
Jeśli czegoś w poście brakuje-byłbym wdzięczny administratorowi za pomoc lub edycję,a nie przenoszenie do kosza,gdyż to mój chyba drugi temat więc dopiero poznaję co i jak.
Pozdrawiam i z góry dziękuję