108992024-04-18 14:40:47KristófÜtős helyzet (75 pont)cpp17Hibás válasz 33/756ms3200 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;
    vector<string>ans;
    while(n--)
        {
        tores=false;
        cin>>tipus>>x>>y;
        y--;
        x--;
        //kiir(tabla);
        if(tipus==1)
            {
            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)
                    {
                        ans.push_back("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)
                        {
                        ans.push_back("NEM");
                        tores=true;
                        }
                        }
                }
                if(tores==false)
                {
                ans.push_back("IGEN");
                ind.sor=x;
                ind.oszlop=y;
                index[ind]=n*10;
                tabla[x][y].push_back(1);
                }
                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);
                }
            }
        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)
                    {
                        ans.push_back("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)
                        {
                        ans.push_back("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;
                                ans.push_back("NEM");
                                }
                            }
                            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;
                            ans.push_back("NEM");
                            }
                        }
                    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;
                            ans.push_back("NEM");
                            }
                        }
                    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;
                            ans.push_back("NEM");
                            }
                        }
                    j++;
                    }

                    if(tores==false)
                        {
                        ans.push_back("IGEN");
                        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)
            {
            ans.push_back("-");

            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);

        }
        for(int i=0;i<ans.size();i++)
            {
            cout<<ans[i]<<endl;
            }
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base33/75
1Elfogadva0/03ms1752 KiB
2Elfogadva0/04ms2104 KiB
3Elfogadva2/23ms2124 KiB
4Elfogadva2/22ms2208 KiB
5Elfogadva3/33ms2348 KiB
6Elfogadva3/34ms2740 KiB
7Elfogadva5/54ms2784 KiB
8Hibás válasz0/64ms3104 KiB
9Hibás válasz0/64ms2952 KiB
10Hibás válasz0/66ms3072 KiB
11Hibás válasz0/64ms2896 KiB
12Hibás válasz0/64ms3076 KiB
13Hibás válasz0/64ms3004 KiB
14Hibás válasz0/66ms2912 KiB
15Elfogadva6/66ms3140 KiB
16Elfogadva6/64ms3200 KiB
17Elfogadva6/64ms3200 KiB