Submission #659087

#TimeUsernameProblemLanguageResultExecution timeMemory
659087Jeff12345121Tram (CEOI13_tram)C++14
25 / 100
1093 ms340 KiB
#include <bits/stdc++.h> #define REP(i,n) for(int i = 1; i <= (n); i++) using namespace std; #ifdef LOCAL ifstream in("in.in"); ofstream out("out.out"); #else #define in cin #define out cout #endif ///brute int n,m; const int nmax = 150005,inf = 1000000005; pair<int,int> queries[nmax]; int a[nmax][3]; int squared(int x) { return x * x; } int find_distance(int y, int x, int i, int j) { return squared(y - i) + squared(x - j); } int get_dis(int y, int x) { int min_distance = inf; for (int i = 1; i <= n; i++) { for (int j = 1; j <= 2; j++) { if (a[i][j] == 1) { min_distance = min(min_distance,find_distance(y,x,i,j)); } } } return min_distance; } pair<int,int> add() { pair<int,int> sol; int max_dis = -inf; for (int i = 1; i <= n; i++) { for (int j = 1; j <= 2; j++) { if (a[i][j] == 1) continue; int dis = get_dis(i,j); if (dis > max_dis) { max_dis = dis; sol = {i,j}; } } } return sol; } int main() { in >> n >> m; for (int i = 1; i <= m; i++) { char type; in >> type; if (type == 'E') { pair<int,int> pos = add(); out << pos.first << " " << pos.second << "\n"; a[pos.first][pos.second] = 1; queries[i] = pos; } else { int pos; in >> pos; a[queries[pos].first][queries[pos].second] = 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...