Rezultati

Up. imeNalogaJezikRezultatČas oddaje
marko Droni C++ 0/100Prekoračen čas (TLE) 10. maj '18 @ 18:57

Test Točke Porabljen spomin Porabljen čas Status
#1 0/5 2,805 MiB 0,000 s Prekoračen čas
Povratna informacija sodniškega sistema:
​The program made an invalid move.
#2 0/5 2,813 MiB 0,000 s Prekoračen čas
Povratna informacija sodniškega sistema:
​The program made an invalid move.
#3 5/5 3,133 MiB 0,000 s OK
Povratna informacija sodniškega sistema:
​The output was correct.
#4 5/5 3,000 MiB 0,000 s OK
Povratna informacija sodniškega sistema:
​The output was correct.
#5 5/5 3,000 MiB 0,000 s OK
Povratna informacija sodniškega sistema:
​The output was correct.
#6 5/5 3,000 MiB 0,003 s OK
Povratna informacija sodniškega sistema:
​The output was correct.
#7 0/5 2,813 MiB 0,000 s Prekoračen čas
Povratna informacija sodniškega sistema:
​The program made an invalid move.
#8 0/5 3,133 MiB 0,000 s Napačen odgovor
Povratna informacija sodniškega sistema:
​The program made an invalid move.
#9 0/5 3,000 MiB 0,000 s Napačen odgovor
Povratna informacija sodniškega sistema:
​The program made an invalid move.
#10 0/5 2,949 MiB 0,000 s Prekoračen čas
Povratna informacija sodniškega sistema:
​The program made an invalid move.
#11 0/5 2,941 MiB 0,000 s Prekoračen čas
Povratna informacija sodniškega sistema:
​The program made an invalid move.
#12 0/5 3,133 MiB 0,000 s Napačen odgovor
Povratna informacija sodniškega sistema:
​The program made an invalid move.
#13 0/5 2,949 MiB 0,000 s Prekoračen čas
Povratna informacija sodniškega sistema:
​The program made an invalid move.
#14 5/5 2,992 MiB 0,004 s OK
Povratna informacija sodniškega sistema:
​The output was correct.
#15 5/5 2,996 MiB 0,004 s OK
Povratna informacija sodniškega sistema:
​The output was correct.
#16 0/5 2,809 MiB 0,000 s Prekoračen čas
Povratna informacija sodniškega sistema:
​The program made an invalid move.
#17 5/5 2,996 MiB 0,000 s OK
Povratna informacija sodniškega sistema:
​The output was correct.
#18 5/5 3,129 MiB 0,004 s OK
Povratna informacija sodniškega sistema:
​The output was correct.
#19 0/5 2,809 MiB 0,000 s Prekoračen čas
Povratna informacija sodniškega sistema:
​The program made an invalid move.
#20 5/5 3,133 MiB 0,004 s OK
Povratna informacija sodniškega sistema:
​The output was correct.

Ocenjevani program (main.cpp):
#include <iostream>
#include <cmath>

struct koordinate
{
    int X, Y, Z;
};

using namespace std;

char maksimum(koordinate &z, koordinate &k)
{
    char c = 'x';
    int maksimum;
    maksimum = abs(z.X - k.X);
    if(abs(z.Y - k.Y) > maksimum)
    {
        maksimum = abs(z.Y - k.Y);
        c = 'y';
    }
    if(abs(z.Z - k.Z) > maksimum)
    {
        maksimum = abs(z.Z - k.Z);
        c = 'z';
    }
    return c;
}
void premik(koordinate &z, koordinate &k)
{
    switch(maksimum(k, z))
    {
    case 'x':
    {
        if(k.X - z.X > 0)
            z.X++;
        else
        {
            z.X--;
        }
        break;
    }
    case 'y':
    {
        if(k.Y - z.Y > 0)
            z.Y++;
        else
        {
            z.Y--;
        }
        break;
    }
    case 'z':
    {
        if(k.Z - z.Z > 0)
            z.Z++;
        else
        {
            z.Z--;
        }
        break;
    }
    }
}

bool ovira(koordinate &z1, koordinate &k1,koordinate &z2)
{
    if((z1.X == k1.X && k1.X == z2.X))
    {
        z1.X++;
        return true;
    }
    if(z1.Y == k1.Y && k1.Y == z2.Y)
    {
        z1.Y++;
        return true;
    }
    if(z1.Z == k1.Z && k1.Z == z2.Z)
    {
        z1.Z++;
        return true;
    }
    return false;
}

bool enako(koordinate test, koordinate d1)
{
    if(test.X == d1.X && test.Y == d1.Y && test.Z == d1.Z)
        return true;
    return false;
}

int main()
{
    koordinate d1, d2, k1, k2, test, test2;
    cin >> d1.X >> d1.Y >> d1.Z >> k1.X >> k1.Y >> k1.Z;
    cin >> d2.X >> d2.Y >> d2.Z >> k2.X >> k2.Y >> k2.Z;
    bool konec = false;
    while(!konec)
    {
        if(d1.X == k1.X && k1.Y == d1.Y && k1.Z == d1.Z && k2.X == d2.X && k2.Y == d2.Y && k2.Z == d2.Z)
            konec = true;
        cout  << "(" <<  d1.X << " " <<  d1.Y << " " <<  d1.Z << ") (" << d2.X <<  " " << d2.Y << " " <<  d2.Z << ")" << endl;
        test = d2;
        test2 = d1;
        premik(test, k2);
        premik(test2, k1);
        if(enako(test, d1) && enako(test2, d2)){
           premik(d1, k1);
        }

        if(enako(test, d1) && enako(test2, d2))
        {
            if(enako(test, test2))
            {
                if(enako(d1, k1))
                    premik(d2, k2);
                else
                    premik(d1, k1);
            }
            else
            {
                if(!enako(d1, k1))
                    premik(d1, k1);
                if(!enako(d2, k2))
                    premik(d2, k2);
            }
        }
        else if(enako(test, test2))
        {
            premik(d2, k2);
        }
        else
        {
            if(!ovira(d2, k2, d1)){
                if(!enako(d2, k2))
                    premik(d2, k2);
                if(!enako(d1, k1))
                    premik(d1, k1);
            }else if(!ovira(d1, k1, d2)){
                if(!enako(d2, k2))
                    premik(d2, k2);
                if(!enako(d1, k1))
                    premik(d1, k1);}else{
                         premik(d2, k2);
                    }
        }
            /*if(!enako(d1, k1))
                premik(d1, k1);
            else if(!ovira(d2, k2, d1)){
                if(!enako(d1, k1))
                    premik(d1, k1);
                premik(d2, k2);
            }else if(!ovira(d1, k1, d2){

            }*/


        //  }
//if((test.X == d1.X && test.Y == d1.Y && test.Z == d1.Z) && (test2.X == d2.X && test2.Y == d2.Y && test2.Z == d2.Z))
        /* if((test.X == d1.X && test.Y == d1.Y && test.Z == d1.Z) || (test2.X == d2.X && test2.Y == d2.Y && test2.Z == d2.Z))
         {
             if(test.X == d1.X || test.Y == d1.Y || test.Z == d1.Z)
             {
                 if(!(k2.X == d2.X && k2.Y == d2.Y && k2.Z == d2.Z) && !ovira(d2, k2, d1))
                     premik(d2, k2);
             }
         //}*/
    }
    return 0;
}