提交时间:2024-10-02 14:51:09

运行 ID: 32923

#include<bits/stdc++.h> using namespace std; const int N=200100; int n,h,k; struct node{ long long x,d; }a[N]; long long b[N]; int idx=0; int main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>n>>h>>k; priority_queue<long long> q; for(int i=1;i<=n;i++) cin>>a[i].x; for(int i=1;i<=n;i++){ cin>>a[i].d; if(a[i].d==-1) q.push(a[i].x); } while(q.size()>h) q.pop(); while(k--){ long long x,d; cin>>x>>d; if(d==-1&&x<q.top()&&q.size()==h) q.push(x),q.pop(); else if(d==-1&&q.size()<h) q.push(x); if(h==q.size()) printf("%.1f\n",q.top()*1.0/2); else printf("Zombie ate your brain\n"); } }