标签:
题意:sempr走在路上会遇见一些石头,如果遇见第奇数个石子,则将它扔到前面,如果是偶数,则什么也不做,如果某一个位置上有多个石头,则先遇见扔的比较近的那个,现在给出一些石头的初始位置和能够扔的距离,问到最后最远处的石头离初始位置多远!
简单的优先队列
#include<iostream> #include<queue> #include<algorithm> using namespace std; int n; struct stu { int position,l; friend bool operator<(stu x,stu y) { if(x.position==y.position) return x.l>y.l; return x.position>y.position; } }; stu x,y; int main() { int t; cin>>t; while(t--) { cin>>n; priority_queue<stu>mapp; while(n--) { cin>>x.position>>x.l; mapp.push(x); } int sum=0; while(mapp.size()) { x=mapp.top(); mapp.pop(); sum++; if(sum%2==0&&!mapp.size()){cout<<x.position<<endl;break;} if(sum%2==0){continue;} x.position+=x.l; mapp.push(x); } } return 0; }
标签:
原文地址:http://blog.csdn.net/zafkiel_nightmare/article/details/45194341