Submission #258643

#TimeUsernameProblemLanguageResultExecution timeMemory
258643dolphingarlicTram (CEOI13_tram)C++14
25 / 100
1081 ms536 KiB
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
 
pair<int, int> pos[100001];
set<pair<int, int>> active;
 
inline ll sq(int x) { return ll(x) * ll(x); }
 
int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int n, m;
    cin >> n >> m;
    for (int cnt = 1; cnt <= m; cnt++) {
        char c;
        cin >> c;
        if (c == 'E') {
            if (!active.size()) pos[cnt] = {1, 1};
            else {
                pair<ll, pair<int, int>> best;
                for (int i = 1; i <= n; i++) {
                    for (int j = 1; j < 3; j++) {
                        ll dist = LLONG_MAX;
                        for (pair<int, int> k : active) {
                            dist = min(dist, sq(k.first - i) + sq(k.second - j));
                        }
                        if (dist > best.first) best = {dist, {i, j}};
                    }
                }
                pos[cnt] = best.second;
            }
            active.insert(pos[cnt]);
            cout << pos[cnt].first << ' ' << pos[cnt].second << '\n';
        } else {
            int idx;
            cin >> idx;
            active.erase(pos[idx]);
        }
    }
    return 0;
}
#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...