Cześć
Robiłem zadanie SkarbFinder z SPOJ -> http://pl.spoj.com/problems/SKARBFI/ i mam złą odpowiedź, odpowiedzi na testy spoja mam poprawne i sam tez nie mogę dopatrzeć się problemu, proszę więc o pomoc :) oto kod:
#include <iostream>
using namespace std;
int t, n;
//t - liczba testow
//n - liczba krokow w kazdym tescie
//x - zmienna x polozenia skarbu
//y - zmienna y polozenia skarbu
//k - kierunek tj 0,1,2 lub 3
//m - mnoznik dla kierunku czyli liczba krokow
int x, y,k,m;
int main() {
cin >> t;
for (int i = 0;i < t;i++)
{
x = 0;
y = 0;
cin >> n;
for (int i = 0;i < n;i++) //ta petla pobiera dane i wyznacza miejsce skarbu
{
cin >> k>>m;
//--------------switch-----------
switch (k)
{
case 0:
y+=m;//pn
break;
case 1:
y-=m;//pd
break;
case 2:
x-=m;//zach
break;
case 3:
x+=m;//wsch
break;
default:
break;
}
//----------------------------
}
if (x == 0 && y == 0) cout << "studnia" << endl; //przypadek dla studni
else if(x==0) //przypadek gdy x =0
{
if (y > 0) cout << "0 " << y << endl;
else cout << "1 " << y << endl;
}
else if (y == 0) //przypadek gdy y =0
{
if (x > 0) cout << "3 " << x << endl;
else cout << "2 " << x << endl;
}
else //przypadek gdy x !=0 i y!=0
{
if (y > 0)
{
cout << "0 " << y << endl;
}
else
{
cout << "1 " << 0-y << endl;
}
//===========
if (x > 0)
{
cout << "3 " << x << endl;
}
else
{
cout << "2 " << 0 - x<<endl;
}
}
}
return 0;
}