Submission #1230995

#TimeUsernameProblemLanguageResultExecution timeMemory
1230995PVM_pvmNaval battle (CEOI24_battle)C++20
12 / 100
3095 ms3368 KiB
#include<bits/stdc++.h>
using namespace std;
#define MAXN 200'007
struct ship
{
    int x,y;
    int tp; ///N 0, E 1, S 2, W 3
    int ind;
} sh[MAXN];
int n;
int kg[MAXN];
int main()
{
    cin>>n;
    for (int q=1;q<=n;q++)
    {
        sh[q].ind=q;
        cin>>sh[q].x>>sh[q].y;
        char c;
        cin>>c;
        if (c=='N') sh[q].tp=0;
        else if (c=='E') sh[q].tp=1;
        else if (c=='S') sh[q].tp=2;
        else if (c=='W') sh[q].tp=3;
    }
    for (int vr=1;vr<=120;vr++)
    {
        for (int q=1;q<=n;q++)
        {
            if (kg[q]!=0) continue;
            if (sh[q].tp==0)
            {
                sh[q].y--;
            }
            else if (sh[q].tp==1)
            {
                sh[q].x++;
            }
            else if (sh[q].tp==2)
            {
                sh[q].y++;
            }
            else if (sh[q].tp==3)
            {
                sh[q].x--;
            }
        }
        vector<int> bl;
        for (int q=1;q<=n;q++)
        {
            if (kg[q]!=0) continue;
            for (int w=1;w<=n;w++)
            {
                if (kg[w]!=0) continue;
                if (q==w) continue;
                if (sh[q].x==sh[w].x && sh[q].y==sh[w].y)
                {
                    bl.push_back(q);
                    bl.push_back(w);
                }
            }
        }
        //cout<<bl.size()<<"\n";
        for (int q=0;q<bl.size();q++) kg[ bl[q] ]=vr;
    }
    for (int q=1;q<=n;q++)
    {
        if (kg[q]==0) cout<<q<<"\n";
    }
}
/*
6
4 0 W
0 2 E
2 2 S
4 4 N
6 6 W
4 2 W
*/

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...