标签:return name 优先队列 lines ast was script color span
Stones
InputIn the first line, there is an Integer T(1<=T<=10), which means the test cases in the input file. Then followed by T test cases.
For each test case, I will give you an Integer N(0<N<=100,000) in the first line, which means the number of stones on the road. Then followed by N lines and there are two integers Pi(0<=Pi<=100,000) and Di(0<=Di<=1,000) in the line, which means the position of the i-th stone and how far Sempr can throw it.
OutputJust output one line for one test case, as described in the Description.
Sample Input
2 2 1 5 2 4 2 1 5 6 6
Sample Output
11 12
优先队列,一次放入,定义优先级位置靠前距离小的石头优先级高,奇数个取出栈顶更新后放入,偶数个直接取出,队列为空结束。
#include<stdio.h> #include<queue> using namespace std; struct Node{ int x,y; friend bool operator<(Node a,Node b) { if(a.x==b.x) return a.y>b.y; return a.x>b.x; } }node,no; int main() { int t,n,c,max,i; priority_queue<Node> q; scanf("%d",&t); while(t--){ scanf("%d",&n); for(i=1;i<=n;i++){ scanf("%d%d",&node.x,&node.y); q.push(node); } c=0;max=0; while(q.size()){ c++; no.x=q.top().x,no.y=q.top().y; q.pop(); if(c%2==1){ no.x+=no.y; if(no.x>max) max=no.x; q.push(no); } } printf("%d\n",max); } return 0; }
标签:return name 优先队列 lines ast was script color span
原文地址:http://www.cnblogs.com/yzm10/p/7222616.html