Submission #1137691

#TimeUsernameProblemLanguageResultExecution timeMemory
1137691AbdullahIshfaqNaval battle (CEOI24_battle)C++20
46 / 100
1842 ms1114112 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define MOD 1000000007 ll n, mxx = 0, mxy = 0; vector<ll> ids, xs, ys, dxs, dys, done; ll tim(ll i, ll j) { ll t = (abs(xs[j] - xs[i]) + abs(ys[j] - ys[i])) / 2; if (xs[j] + t * dxs[j] == xs[i] + t * dxs[i] && ys[j] + t * dys[j] == ys[i] + t * dys[i]) { return t; } else { return 1e9; } } bool valid(ll ind) { return (0 <= xs[ind] && xs[ind] <= mxx) && (0 <= ys[ind] && ys[ind] <= mxy); } void solve(){ cin >> n; for (int i = 0; i < n; i++) { ll x, y; char d; cin >> x >> y >> d; mxx = max(mxx, x); mxy = max(mxy, y); ids.push_back(i); xs.push_back(x); ys.push_back(y); dxs.push_back(d == 'W' ? -1 : (d == 'E' ? 1 : 0)); dys.push_back(d == 'N' ? -1 : (d == 'S' ? 1 : 0)); done.push_back(1e9); } vector<tuple<ll, ll, ll>> happ; for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { ll tt = tim(i, j); if (tt < 1e9) { happ.emplace_back(tt, i, j); } } } sort(happ.begin(), happ.end()); for (auto [time, i, j] : happ) { if (done[i] < time || done[j] < time) continue; done[i] = done[j] = time; } for (int i = 0; i < n; i++) { if (done[i] == 1e9) { cout << ids[i] + 1 << '\n'; } } } int main() { ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); int tests = 1; // cin >> tests; for (int i = 1; i <= tests; i++) { 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...