제출 #1346024

#제출 시각아이디문제언어결과실행 시간메모리
1346024MrAndriaNaval battle (CEOI24_battle)C++20
30 / 100
412 ms58340 KiB
#include <bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define pb push_back
//#define int long long
const int N=2e5+5;
int n,x[N],y[N];
char ch[N];
int parent[N],sz[N],ans,vis[N];
set <int> st;
map <int,vector <int> > vec;
vector <int> dx={0,0,1,-1};
vector <int> dy={-1,1,0,0};
map <char,int> mp;
map <int,set <pair <int,int> > > s;

int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>x[i]>>y[i]>>ch[i];
        st.insert(y[i]);
        vec[y[i]].pb(i);
    }
    for(auto d:st){
        for(auto i:vec[d]){
            if(ch[i]=='E'){
                auto it=s[x[i]+y[i]].lower_bound(make_pair(x[i],0));
                if(it!=s[x[i]+y[i]].end()){
                    vis[i]=1;
                    vis[(*it).ss]=1;
                    s[x[i]+y[i]].erase(it);
                }
            }else{
                s[x[i]+y[i]].insert(make_pair(x[i],i));
            }
        }
    }
    
    for(int i=1;i<=n;i++){
        if(vis[i]==0){
            cout<<i<<"\n";
        }
    }

}
#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...