Hej wszystkim,
napisałem kod w C#, podczas moich testów wychodzi że wszystko działa poprawnie, jednak SPOJ wywala błąd: błędna odpowiedź. Może ktoś pomóc, naprowadzić gdzie mam błąd?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _499
{
class Program
{
static void Main(string[] args)
{
int liczbaProb;
ulong wynik;
liczbaProb = int.Parse(Console.ReadLine());
ulong[] podstawa = new ulong[liczbaProb];
ulong[] wykladnik = new ulong[liczbaProb];
for (int i = 0; i < liczbaProb; i++)
{
var ab = Console.ReadLine().Split(null);
podstawa[i] = ulong.Parse(ab[0]);
wykladnik[i] = ulong.Parse(ab[1]);
}
for (int i = 0; i < liczbaProb; i++)
{
if (wykladnik[i] == 0)
{
break;
}
else if ((podstawa[i] % 10) == 0 || (podstawa[i] % 10) == 1 || (podstawa[i] % 10) == 5 || (podstawa[i] % 10) == 6)
wynik = podstawa[i] % 10;
else if (podstawa[i] % 10 == 4)
{
if (wykladnik[i] % 2 == 0)
wynik = 6;
else
wynik = 4;
}
else if (podstawa[i] % 10 == 9)
{
if (wykladnik[i] % 2 == 0)
wynik = 1;
else
wynik = 9;
}
else if (podstawa[i] % 10 == 2 || podstawa[i] % 10 == 3 || podstawa[i] % 10 == 7 || podstawa[i] % 10 == 8)
{
ulong reszta = wykladnik[i] % 10;
switch (podstawa[i] % 10)
{
case 2:
if (reszta == 1)
wynik = 2;
else if (reszta == 2)
wynik = 4;
else if (reszta == 3)
wynik = 8;
else if (reszta == 0)
wynik = 6;
else
wynik = 0;
break;
case 3:
if (reszta == 1)
wynik = 3;
else if (reszta == 2)
wynik = 9;
else if (reszta == 3)
wynik = 7;
else if (reszta == 0)
wynik = 1;
else
wynik = 0;
break;
case 7:
if (reszta == 1)
wynik = 7;
else if (reszta == 2)
wynik = 9;
else if (reszta == 3)
wynik = 3;
else if (reszta == 0)
wynik = 1;
else
wynik = 0;
break;
case 8:
if (reszta == 1)
wynik = 8;
else if (reszta == 2)
wynik = 4;
else if (reszta == 3)
wynik = 2;
else if (reszta == 0)
wynik = 6;
else
wynik = 0;
break;
default:
wynik = 0;
break;
}
}
else
wynik = 0;
Console.WriteLine(wynik);
}
}
}
}