Submission #1262231

#TimeUsernameProblemLanguageResultExecution timeMemory
1262231user736482Mixture (BOI20_mixture)C++20
0 / 100
0 ms328 KiB
#pragma GCC optimize("O3") #include <bits/stdc++.h> using namespace std; #define ll long long #define ld long double #define pb push_back #define ff first #define ss second #define MOD 1000000007 #define INF 1000000019 #define POT (1<<20) #define INFL 1000000000000000099 vector<pair<pair<ld,ld>,ld>>btl; ll n,a,b,c,A,B,C; map<ld,ll>s[2]; bool czy(pair<ld,ld>x,pair<ld,ld>y){ return x.ff*y.ss>=x.ss*y.ff; } bool check(){ if(s[0].empty() || s[1].empty())return 0; ld p1=(*s[0].begin()).ff; ld p2=(*s[1].begin()).ff; ld k1=(*--s[0].end()).ff; ld k2=(*--s[1].end()).ff; if(k1<p2 || k2<p1)return 0; return 1; } pair<ld,ll>gt(ll x,ll y,ll z){ x=C*x-z*A; y=C*y-z*B; ll k=abs(__gcd(x,y)); if(k){ x/=k; y/=k; } if(y==0){ if(x==0)return {0,1}; return {(x>0)*2*(ld)INFL-(ld)INFL,1}; } return {(ld)x/(ld)y,(y>0)}; } pair<ld,ll>x[100007]; ll ak=1; ll czy1=0,czy2=0; void f(pair<ld,ll>co,ll mlt){ //cout<<co.ff<<" "; if(co.ff==0){ czy1+=mlt; s[co.ss][co.ff]++; return; } czy2+=mlt*s[!co.ss][co.ff]; if(s[!co.ss][co.ff]==0)s[!co.ss].erase(co.ff); s[co.ss][co.ff]++; } int main(){ cin>>A>>B>>C; cin>>n; ll ak2=1; for(ll i=0;i<n;i++){ char ch; cin>>ch; if(ch=='A'){ cin>>a>>b>>c; pair<ld,ll>ak=gt(a,b,c); x[ak2++]=ak; f(ak,1); } else{ cin>>a; pair<ld,ll>ak=x[(ll)a]; s[ak.ss][ak.ff]--; f(ak,-1); s[ak.ss][ak.ff]--; if(s[ak.ss][ak.ff]==0)s[ak.ss].erase(ak.ff); } if(czy1)cout<<1; else if(czy2)cout<<2; else if(check())cout<<3; else cout<<0; cout<<"\n"; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...