poj 1281 MANAGER

来源:互联网 发布:linux rsync安装配置 编辑:程序博客网 时间:2024/05/21 07:15
//这题属于简单的模拟题,主要是用两个容器来储存增加进来的cost和删除的cost即可!然后再根据给出的删除清单,在储存删除的容器中进行!//就开始的时候WA了一次,是因为输出格式的问题,值得注意! #include "iostream"#include "string"#include "set"#include "vector"using namespace std;multiset<int> s;//增加cost的储存 vector<int> v;//删除cost的储存 multiset<int>::iterator it;int policy;void a()//增加 {     int cost;     cin >> cost;     s.insert(cost);}void re(int pp)//删除 {     if (pp == 1)     {         if (s.empty())            cout << "-1" << endl;         else         {             it = s.begin();             v.push_back((*it));             s.erase(it);         }     }     else if (pp == 2)     {          if (s.empty())            cout << "-1" << endl;         else         {             int size = s.size();             for (it = s.begin(); it != s.end(); it++)             {                 size--;                 if (size == 0)                 {                   break;                 }             }             v.push_back((*it));             s.erase(it);         }     }}void p()//policy的类型 {     int p;     cin >> p;     policy = p;}int main(){    int maxcost, len, i, count;    char request;    bool flag;    while (cin >> maxcost >> len)    {          int *r = new int[len];          for (i = 0; i < len; i++)              cin >> r[i];          flag = false;          s.clear();          v.clear();          count = 0;          policy = 1;          while (1)          {                cin >> request;                if (request == 'a')                {                    a();                }                else if (request == 'r')                {                    re(policy);                }                else if (request == 'p')                {                     p();                }                else if (request == 'e')                {                    flag = true;                    break;                }          }          for (i = 0; i < len; i++)              cout << v[r[i]-1] << endl;          cout << endl;          if (flag)  continue;    }    system("pause");}/*521 3a 2a 3ra 4p 2ra 5re112p 2a 1a 1a 1p 1ra 1re10051 2 3 4 5a 14rp 2a 15a 13rp 1p 2p 1a 90a 30a 52rp 2rp 1re1031 3 5a 2a 1rp 2a 4ra 3p 1a 8ra 2a 1p 2ra 4p 1a 3ra 9a 8a 7re16061 2 3 31 42 53a 1a 2a 3a 4a 5a 6a 7a 8a 9a 10a 11a 12a 13a 14a 15a 16a 17a 18a 19a 20a 160a 159a 158a 157a 156a 155a 154a 153a 152a 151a 150a 21a 149a 22a 148a 43a 147a 44a 146a 145a 144a 45a 143a 46a 47a 48a 49a 50a 142a 141a 140a 139a 138a 137a 136a 135a 134a 133a 132a 131rrrrrp 2rrrrrrrrrrrrrrrrrrrrrrrrp 1rrrrrrrrrrrrrrrrrrrrrrrrrrrre*//*1141513903012112371849*/