提交时间:2024-10-02 14:31:08
运行 ID: 32915
#include<bits/stdc++.h> using namespace std; int n,h,t; int z[200005]; priority_queue<int,vector<int>,greater<int> > pq; priority_queue<int> npq; int main(){ scanf("%d%d%d",&n,&h,&t); for (int i = 1; i <= n; i++){ int v; scanf("%d",&z[i]); } for (int i = 1; i <= n; i++){ int v; scanf("%d",&v); if(v>0)continue; if(z[i]<0)continue; pq.push(z[i]); } for(int i = 1;i<=h;i++){ if(pq.empty())break; npq.push(pq.top()); pq.pop(); } while(t--){ int x,v; scanf("%d%d",&x,&v); if(x<0&&npq.size() == h){ printf("%.1lf\n",npq.top()/2.0); continue; } if(v>0&&npq.size() == h){ printf("%.1lf\n",npq.top()/2.0); continue; } if(npq.size() + 1 == h){ npq.push(x); printf("%.1lf\n",npq.top()/2.0); continue; } if(npq.size() + 1 < h){ npq.push(x); printf("Zombie ate your brain\n"); continue; } npq.push(x); npq.pop(); printf("%.1lf\n",npq.top()/2.0); } }