#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |