Submission #1052791

#TimeUsernameProblemLanguageResultExecution timeMemory
1052791beaconmcNaval battle (CEOI24_battle)C++14
6 / 100
3071 ms382940 KiB
#include <bits/stdc++.h> typedef long long ll; #define FOR(i,x,y) for(ll i=x; i<y; i++) #define FORNEG(i,x,y) for(ll i=x; i>y; i--) using namespace std; vector<vector<ll>> stuff; vector<vector<ll>> collisions; int main(){ ll n; cin >> n; FOR(i,0,n){ ll x,y; cin >> x >> y; char s; cin >> s; stuff.push_back({x,y,s, i}); } FOR(i,0,n){ FOR(j,i+1,n){ ll time1, time2; set<ll> up = {'S','N'}; set<ll> left = {'E','W'}; if (up.count(stuff[i][2]) && up.count(stuff[j][2]) && stuff[i][0] != stuff[j][0]) continue; if (left.count(stuff[i][2]) && left.count(stuff[j][2]) && stuff[i][1] != stuff[j][1]) continue; if (stuff[i][2] == 'S'){ time1 = stuff[i][1] - stuff[j][1]; } if (stuff[i][2] == 'N'){ time1 = stuff[j][1] - stuff[i][1]; } if (stuff[i][2] == 'E'){ time1 = stuff[i][0] - stuff[j][0]; } if (stuff[i][2] == 'W'){ time1 = stuff[j][0] - stuff[i][0]; } if (stuff[j][2] == 'S'){ time2 = stuff[j][1] - stuff[i][1]; } if (stuff[j][2] == 'N'){ time2 = stuff[i][1] - stuff[j][1]; } if (stuff[j][2] == 'E'){ time2 = stuff[j][0] - stuff[i][0]; } if (stuff[j][2] == 'W'){ time2 = stuff[i][0] - stuff[j][0]; } if (time1 < 0 && time1==time2){ collisions.push_back({-time1,i+1, j+1}); } } } sort(collisions.begin(), collisions.end()); reverse(collisions.begin(), collisions.end()); set<ll> destroyed; set<ll> times; for (auto&i : collisions) times.insert(i[0]); ll cur; for (auto&i : times){ vector<ll> temp; while (collisions.size() && collisions[collisions.size()-1][0] == i){ if (!(destroyed.count(collisions[collisions.size()-1][1]) || destroyed.count(collisions[collisions.size()-1][2]))){ temp.push_back(collisions[collisions.size()-1][1]); temp.push_back(collisions[collisions.size()-1][2]); } collisions.pop_back(); } for (auto&i : temp) destroyed.insert(i); } FOR(i,1,n+1) if (destroyed.count(i) == 0) cout << i << endl; }

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:66:5: warning: unused variable 'cur' [-Wunused-variable]
   66 |  ll cur;
      |     ^~~
Main.cpp:55:26: warning: 'time2' may be used uninitialized in this function [-Wmaybe-uninitialized]
   55 |    if (time1 < 0 && time1==time2){
      |                     ~~~~~^~~~~~~
Main.cpp:57:27: warning: 'time1' may be used uninitialized in this function [-Wmaybe-uninitialized]
   57 |     collisions.push_back({-time1,i+1, j+1});
      |                           ^~~~~~
#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...