• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

SPOJ SkarbFinder problem

VPS Starter Arubacloud
0 głosów
427 wizyt
pytanie zadane 24 stycznia 2017 w C i C++ przez Elegant2272 Nowicjusz (120 p.)

Zrobiłem zadanie ze strony spoj jednak coś nie działa. Poratuje ktoś radą?

 

#include <iostream>
#include <cmath>
using namespace std;

int main() {
	int ile_razy;
	cin>>ile_razy;
	for(int i=1;i<=ile_razy;i++)
	{
	int ilosc_wsp;
	cin>>ilosc_wsp;
	char kierunek[ilosc_wsp-1];
	int kroki[ilosc_wsp-1];
	for(int i=0;i<ilosc_wsp;i++)
	{
		cin>>kierunek[i];
		cin>>kroki[i];
	}
	int wsp_a=0;
	int wsp_b=0;
	
	for(int i=0;i<ilosc_wsp;i++)
	{
		if(kierunek[i]==0) wsp_b+=kroki[i];
		if(kierunek[i]==1) wsp_b-=kroki[i];
		if(kierunek[i]==2) wsp_a-=kroki[i];
		if(kierunek[i]==3) wsp_a+=kroki[i];
	}
	if((wsp_a==0)&&(wsp_b==0)) cout<<"studnia"<<endl;
	if(wsp_b>0) cout<<"0 "<<abs(wsp_b)<<endl;
	else cout<<"1 "<<abs(wsp_b)<<endl;
	if(wsp_a<0) cout<<"2 "<<abs(wsp_b)<<endl;
	else cout<<"3 "<<abs(wsp_b)<<endl;
	}
	return 0;
}

 

1 odpowiedź

0 głosów
odpowiedź 24 stycznia 2017 przez 10kw10 Pasjonat (22,880 p.)
if(kierunek[i]==0) wsp_b+=kroki[i];
        if(kierunek[i]==1) wsp_b-=kroki[i];
        if(kierunek[i]==2) wsp_a-=kroki[i];
        if(kierunek[i]==3) wsp_a+=kroki[i];

kierunek jest typu char a porownujesz go z intem

komentarz 24 stycznia 2017 przez Elegant2272 Nowicjusz (120 p.)
Zmieniłem char na int ale spoj nadal nie przyjmuje :( (po wpisaniu danych z przykładu otrzymuje dobre wyniki)
komentarz 24 stycznia 2017 przez 10kw10 Pasjonat (22,880 p.)
Jaki komunikat wyskakuje ?

Tez zmienilem na chara i mi daje zle wyniki, w pewnym sensie.

W drugim przypadku jak ma wypisac studnia to potem nie potrzebnie wypisuje dalsza czesc.
komentarz 24 stycznia 2017 przez Elegant2272 Nowicjusz (120 p.)

na spoj jest błędna odpowiedź. Żeby nie wypisywało po studni nic dałem else po pierwszym warunku ale nic :(

if((wsp_a==0)&&(wsp_b==0)) cout<<"studnia"<<endl;
	else
	{
		if(wsp_b>0) cout<<"0 "<<abs(wsp_b)<<endl;
		if(wsp_b<0) cout<<"1 "<<abs(wsp_b)<<endl;
		if(wsp_a<0) cout<<"2 "<<abs(wsp_b)<<endl;
		if(wsp_a>0) cout<<"3 "<<abs(wsp_b)<<endl;
	}

 

komentarz 24 stycznia 2017 przez 10kw10 Pasjonat (22,880 p.)
No to nie wiem, mozesz popatrzyc na forum spoja.

Ogolnie to nie potrzebna jest ci tu tablica kierunkow i krokow, bo zliczacz mozesz na biezaco, czyli podajesz kierunek, kroki, dodajesz do odpowiedniej zmiennej.

Do dodawania ja uzylem switcha choc to chyba nie ma wielkiego znaczenia.
komentarz 25 stycznia 2017 przez Elegant2272 Nowicjusz (120 p.)
spróbuje zrobić tak jak mówisz :)

Podobne pytania

0 głosów
1 odpowiedź 363 wizyt
pytanie zadane 23 czerwca 2021 w SPOJ przez Wirla Nowicjusz (180 p.)
0 głosów
1 odpowiedź 523 wizyt
pytanie zadane 21 października 2017 w SPOJ przez LockeLamora Użytkownik (740 p.)
0 głosów
1 odpowiedź 330 wizyt
pytanie zadane 22 maja 2017 w Java przez Jedyn Obywatel (1,200 p.)

92,977 zapytań

141,940 odpowiedzi

321,182 komentarzy

62,303 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...