Submission #1068502

#TimeUsernameProblemLanguageResultExecution timeMemory
1068502vjudge1Naval battle (CEOI24_battle)C++17
12 / 100
3018 ms2904 KiB
#include <bits/stdc++.h>
#define div /
#define ll long long

#define fore(i, l, r) for(int i=int(l); i<int(r); i++)
#define sz(a) int((a).size())

using namespace std;

const int INF = 1e9;
const int MX = 5e5 + 23;
const int MOD = 1000000007;
const int MAX_N = 5e5+23;
const int N = 1e6;

void solve() {
    int n; cin >> n;
    int x[n],y[n],destroyed[n+5];
    memset(destroyed,0,sizeof destroyed);
    char d[n];
    fore(i,0,n)
        cin >> x[i] >> y[i] >> d[i];
    fore(korak,1,101) {
        fore(i,0,n) {
            if(destroyed[i])
                continue;
            if(d[i] == 'E')
                x[i]++;
            else if(d[i] == 'W')
                x[i]--;
            else if(d[i] == 'N')
                y[i]--;
            else
                y[i]++;
        }
        fore(i,0,n-1) {
            fore(j,i+1,n) {
                if(i == j or (destroyed[i] and destroyed[i] < korak) or (destroyed[j] and destroyed[j] < korak))
                    continue;
                if(x[i] == x[j] and y[i] == y[j]) {
                    destroyed[i] = korak;
                    destroyed[j] = korak;
                }
            }
        }
    }
    fore(i,0,n)
        if(!destroyed[i])
            cout << i+1 << endl;
}

int main() {
    ios::sync_with_stdio(false);

    int t=1;
    while(t--) solve();
}
#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...