Submission #1086104

#TimeUsernameProblemLanguageResultExecution timeMemory
1086104not_amirMixture (BOI20_mixture)C++17
0 / 100
1 ms348 KiB
#include <bits/stdc++.h> using namespace std; #define pii pair<int, int> #define PI M_PI - 1e-2 int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); int S, P, G, N; cin >> S >> P >> G >> N; G += S + P; multiset<pii> pts; multiset<double> angles; vector<pair<multiset<pii>::iterator, multiset<double>::iterator>> add; int ctrl = 0, ctrt = 0, t = 0; while(N--){ char c; cin >> c; if(c == 'A'){ int x, y, z, x1, y1, divide; cin >> x >> y >> z; z += x + y; x1 = x * G - S * z; y1 = y * G - P * z; divide = gcd(x1, y1); pii v = {x1?x1 / divide:0, y1?y1 / divide:0}; if(pts.find({-v.first, -v.second}) != pts.end()) ctrl++; auto it2 = pts.insert(v); auto it = angles.insert(atan2(double(y) / double(z) - double(P) / double(G), double(x) / double(z) - double(S) / double(G))); if(it == angles.begin()) if(*angles.rbegin() - *it > PI) ctrt=1; else if(*it - *--it > PI) ctrt=1; if(it == angles.end()) if(*it - *angles.begin() > PI) ctrt=1; else if(*++it - *it > PI) ctrt=1; add.push_back({it2, it}); } else{ int r, x, y; cin >> r; auto it2 = add[r-1].first; auto it = add[r-1].second; if(pts.find({-(*it2).first, -(*it2).second}) != pts.end()) ctrl--; pts.erase(it2); if(it == angles.begin()) if(*angles.rbegin() - *it > PI) ctrt=0; else if(*it - *--it > PI) ctrt=0; if(it == angles.end()) if(*it - *angles.begin() > PI) ctrt=0; else if(*++it - *it > PI) ctrt=0; angles.erase(it); } if(pts.find({0, 0}) != pts.end()) cout << "1\n"; else if(ctrl) cout << "2\n"; else if(ctrt) cout << "3\n"; else cout << "0\n"; } }

Compilation message (stderr)

Mixture.cpp: In function 'int main()':
Mixture.cpp:30:15: warning: suggest explicit braces to avoid ambiguous 'else' [-Wdangling-else]
   30 |             if(it == angles.begin())
      |               ^
Mixture.cpp:34:15: warning: suggest explicit braces to avoid ambiguous 'else' [-Wdangling-else]
   34 |             if(it == angles.end())
      |               ^
Mixture.cpp:47:15: warning: suggest explicit braces to avoid ambiguous 'else' [-Wdangling-else]
   47 |             if(it == angles.begin())
      |               ^
Mixture.cpp:51:15: warning: suggest explicit braces to avoid ambiguous 'else' [-Wdangling-else]
   51 |             if(it == angles.end())
      |               ^
Mixture.cpp:41:20: warning: unused variable 'x' [-Wunused-variable]
   41 |             int r, x, y;
      |                    ^
Mixture.cpp:41:23: warning: unused variable 'y' [-Wunused-variable]
   41 |             int r, x, y;
      |                       ^
Mixture.cpp:15:29: warning: unused variable 't' [-Wunused-variable]
   15 |     int ctrl = 0, ctrt = 0, t = 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...