Submission #1086147

#TimeUsernameProblemLanguageResultExecution timeMemory
1086147not_amirMixture (BOI20_mixture)C++14
Compilation error
0 ms0 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<long double> angles; vector<pair<pii, long double>> add; int ctrp = 0, ctrl = 0, ctrt = 1, t = 0; while(N--){ char c; cin >> c; if(c == 'A'){ int x, y, z, divide; pii fi; long double se; cin >> x >> y >> z; z += x + y; x = x * G - S * z; y = y * G - P * z; if(x == 0 && y == 0) ctrp++; else{ divide = gcd(x, y); x?x /= divide:0; y?y /= divide:0; if(pts.find({x, y}) == pts.end() && pts.find({-x, -y}) != pts.end()) ctrl++; auto it2 = pts.insert(fi = {x, y}); auto it = angles.insert(se = atan2l(y, x)); if(angles.size() > 2){ if(it == angles.begin()) if(*angles.rbegin() - se > PI) ctrt=1; else if(se - *--it > PI) ctrt=1; if(it == angles.end()) if(se - *angles.begin() > PI) ctrt=1; else if(*++it - se > PI) ctrt=1; } else ctrt = 1; add.push_back({fi, se}); } } else{ int r, x, y; cin >> r; auto it2 = pts.find(add[r-1].first); auto it = angles.find(add[r-1].second); x = (*it2).first; y= (*it2).second; if(x == 0 && y == 0) ctrp--; else{ pts.erase(it2); if(pts.find({x, y}) == pts.end() && pts.find({-x, -y}) != pts.end()) ctrl--; if(angles.size() > 2){ 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; } else ctrt = 1; angles.erase(it); } } if(ctrp) 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:26: error: 'gcd' was not declared in this scope
   30 |                 divide = gcd(x, y);
      |                          ^~~
Mixture.cpp:36:23: warning: suggest explicit braces to avoid ambiguous 'else' [-Wdangling-else]
   36 |                     if(it == angles.begin())
      |                       ^
Mixture.cpp:40:23: warning: suggest explicit braces to avoid ambiguous 'else' [-Wdangling-else]
   40 |                     if(it == angles.end())
      |                       ^
Mixture.cpp:62:23: warning: suggest explicit braces to avoid ambiguous 'else' [-Wdangling-else]
   62 |                     if(it == angles.begin())
      |                       ^
Mixture.cpp:66:23: warning: suggest explicit braces to avoid ambiguous 'else' [-Wdangling-else]
   66 |                     if(it == angles.end())
      |                       ^
Mixture.cpp:15:39: warning: unused variable 't' [-Wunused-variable]
   15 |     int ctrp = 0, ctrl = 0, ctrt = 1, t = 0;
      |                                       ^