108972024-04-18 13:54:41KristófÜtős helyzet (75 pont)cpp17Hibás válasz 0/756ms3072 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#include <bits/stdc++.h>
using namespace std;
int kiir(vector<int> t[8][8])
{
for(int i=0;i<8;i++)
    {
    for(int m=0;m<8;m++)
        {
        for(int k=0;k<t[i][m].size();k++)
            {
            cout<<t[i][m][k]<<" ";
            }
        cout<<"\t";
        }
    cout<<endl;
    }
    return 1;
}

struct key{

int sor;
int oszlop;

}typedef key;

bool operator<(const key& l, const key& r) {
     return (l.sor<r.sor || (l.sor==r.sor && l.oszlop<r.oszlop));
}


int main()
{
    vector<int> tabla[8][8];
    for(int i=0;i<8;i++){
        for(int m=0;m<8;m++){
            tabla[i][m].push_back(0);
        }
    }

    map<key,int>index;

    int x;
    int y;
    int tipus;
    int n;
    cin>>n;
    int i;
    bool tores=false;
    key ind;
    int j;
    int seged;
    while(n--)
        {
        tores=false;
        cin>>tipus>>x>>y;
        y--;
        x--;
        //kiir(tabla);
        if(tipus==1)
            {
            for( i=0;i<tabla[x][y].size();i++)
            {
            if(tabla[x][y][i]!=0)
                {
                break;
                }
            }
            if(tabla[x][y][i]==0)
                {
                for(i=0;i<8;i++)
                    {
                        if(tores==true)
                            {
                            break;
                            }
                    for(int m=0;m<tabla[i][y].size();m++)
                        {
                        if(tabla[i][y][m]==1 || tabla[i][y][m]==2)
                            {
                            tores=true;
                            break;
                            }
                        }
                if(tores==false)
                    {
                    ind.sor=x;
                    ind.oszlop=y;
                    tabla[x][y].push_back(1);
                    for(i=0;i<8;i++)
                        {
                        if(tabla[i][y][1]!=1)
                            {
                            tabla[i][y].push_back(n*10);
                            }
                        }
                    for(i=0;i<8;i++)
                        {
                        if(tabla[x][i][1]!=1)
                            {
                            tabla[x][i].push_back(n*10);
                            }
                        }
                    index[ind]=n*10;
                    cout<<"IGEN";
                    }
                else
                    {
                    cout<<"NEM";
                    }
                    }

                }
                else
                    {
                    cout<<"NEM";
                    }

            }
        if(tipus==2)
        {
            for(int i=0;i<8;i++)
            {
                if(tores==true)
                    {
                    break;
                    }
                if(tabla[i][y].size()>1)
                    {
                    if(tabla[i][y][1]==1 || tabla[i][y][1]==2)
                    {
                        cout<<"NEM";
                        tores=true;
                    }
                    }
            }
                for(int i=0;i<8;i++)
                {
                    if(tores==true)
                        {
                        break;
                        }
                    if(tabla[x][i].size()>1)
                        {
                        if(tabla[x][i][1]==1 || tabla[x][i][1]==2)
                        {
                        cout<<"NEM";
                        tores=true;
                        }
                        }
                }
                    j=y;
                    for(i=x;i>=0 && j>=0;i--)
                        {
                        if(tores==true){
                            break;
                        }
                        if(tabla[i][j].size()>1)
                            {
                            if(tabla[i][j][1]==1 || tabla[i][j][1]==2)
                                {
                                tores=true;
                                cout<<"NEM"<<endl;
                                }
                            }
                            j--;
                        }
                    j=y;
                    for(i=x;i>=0 && j<=7;i-- )
                    {
                    if(tores==true){
                        break;
                    }
                    if(tabla[i][j].size()>1)
                        {
                        if(tabla[i][j][1]==1 || tabla[i][j][1]==2)
                            {
                            tores=true;
                            cout<<"NEM"<<endl;
                            }
                        }
                    j++;
                    }
                    j=y;
                    for(i=x;i<=7 && j>=0;i++)
                    {
                    if(tores==true){
                        break;
                    }
                    if(tabla[i][j].size()>1)
                        {
                        if(tabla[i][j][1]==1 || tabla[i][j][1]==2)
                            {
                            tores=true;
                            cout<<"NEM"<<endl;
                            }
                        }
                    j--;
                    }
                    j=y;
                    for(i=x;i<=7 && j<=7;i++)
                    {
                    if(tores==true){
                        break;
                    }
                    if(tabla[i][j].size()>1)
                        {
                        if(tabla[i][j][1]==1 || tabla[i][j][1]==2)
                            {
                            tores=true;
                            cout<<"NEM"<<endl;
                            }
                        }
                    j++;
                    }

                    if(tores==false)
                        {
                        cout<<"IGEN"<<endl;
                        ind.sor=x;
                        ind.oszlop=y;
                        index[ind]=n*10;
                        tabla[x][y].push_back(2);
                        }
                    for(int i=0;i<8;i++)
                    {
                    if(tores==true)
                        {
                        break;
                        }
                    tabla[i][y].push_back(n*10);
                    }
                for(int i=0;i<8;i++)
                {
                    if(tores==true)
                        {
                        break;
                        }
                      tabla[x][i].push_back(n*10);
                }
                j=y;
                for(i=x;i>=0 && j>=0;i-- )
                    {
                    if(tores==true){
                        break;
                    }

                    tabla[i][j].push_back(n*10);
                    j--;
                    }
                    j=y;
                    for(i=x;i>=0 && j<=7;i-- )
                    {
                    if(tores==true){
                        break;
                    }
                    tabla[i][j].push_back(n*10);
                    j++;
                    }
                    j=y;
                    for(i=x;i<=7 && j>=0;i++ )
                    {
                    if(tores==true){
                        break;
                    }
                    tabla[i][j].push_back(n*10);
                    j--;
                    }
                    j=y;
                    for(i=x;i<=7 && j<=7;i++)
                    {
                    if(tores==true){
                        break;
                    }
                    tabla[i][j].push_back(n*10);
                    j++;
                    }
        }
        if(tipus==3)
            {
            cout<<"-";

            tabla[x][y].erase(remove(tabla[x][y].begin(),tabla[x][y].end(),2),tabla[x][y].end());
            tabla[x][y].erase(remove(tabla[x][y].begin(),tabla[x][y].end(),1),tabla[x][y].end());
            ind.sor=x;
            ind.oszlop=y;
            seged=index[ind];
            for(i=0;i<8;i++)
                {
                for(int l=0;l<8;l++)
                    {
                    tabla[i][l].erase(remove(tabla[i][l].begin(),tabla[i][l].end(),seged),tabla[i][l].end());
                    }
                }
            }
        //kiir(tabla);

        }
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/75
1Hibás válasz0/03ms1808 KiB
2Hibás válasz0/06ms2036 KiB
3Hibás válasz0/23ms2364 KiB
4Hibás válasz0/22ms2128 KiB
5Hibás válasz0/33ms2260 KiB
6Hibás válasz0/34ms2340 KiB
7Hibás válasz0/54ms2540 KiB
8Hibás válasz0/64ms2756 KiB
9Hibás válasz0/66ms2932 KiB
10Hibás válasz0/66ms3020 KiB
11Hibás válasz0/64ms2916 KiB
12Hibás válasz0/64ms2912 KiB
13Hibás válasz0/64ms2916 KiB
14Hibás válasz0/66ms2976 KiB
15Hibás válasz0/64ms3060 KiB
16Hibás válasz0/64ms3072 KiB
17Hibás válasz0/64ms3060 KiB