首页 > 代码库 > UVALIVE 3135 Argus

UVALIVE 3135 Argus

#include <map>#include <set>#include <list>#include <cmath>#include <ctime>#include <deque>#include <stack>#include <queue>#include <cctype>#include <cstdio>#include <string>#include <vector>#include <climits>#include <cstdlib>#include <cstring>#include <iostream>#include <algorithm>#define LL long long#define PI 3.1415926535897932626using namespace std;int gcd(int a, int b) {return a % b == 0 ? b : gcd(b, a % b);}struct node{        int t;        int ti;        int id;        friend bool operator < (const node &a,const node & b)        {                if (a.ti == b.ti) return a.id > b.id;                return a.ti  > b.ti;        }};string res;int K;priority_queue<node>q;int main(){        while (cin >> res)        {                while (!q.empty()) q.pop();                node tmp;                cin >> tmp.id >> tmp.t;                tmp.ti = tmp.t;                q.push(tmp);                while (cin >> res)                {                        if (res[0] == #) break;                        cin >> tmp.id >> tmp.t;                        tmp.ti = tmp.t;                        q.push(tmp);                }                int cas = 0;                cin >> K;                while (K --)                {                        tmp = q.top();q.pop();                        //cout << tmp.id  << ‘ ‘ <<  tmp.t << ‘ ‘  << tmp.ti <<endl;                        cout << tmp.id << endl ;                        tmp.ti += tmp.t;                        q.push(tmp);                }               // puts("");        }        return 0;}

 

UVALIVE 3135 Argus