bzoj 1208: [HNOI2004]宠物收养所

我觉得题名应该改为:关于<set>库的正确使用语法练习。

 1 /*
 2 ID:WULALA
 3 PROB:bzoj1208 
 4 LANG:C++
 5 */
 6 #include <set> 
 7 #include <cstdio>
 8 #include <cstring>
 9 #include <algorithm>
10 #include <cmath>
11 #include <iostream>
12 #include <fstream>
13 #include <ctime>
14 #define N 
15 #define M
16 #define mod 1000000
17 #define mid(l,r) ((l+r) >> 1)
18 #define INF 0x7fffffff
19 using namespace std;
20 
21 set<int> bst;
22 int n,ans;
23 bool flag;
24 
25 int main()
26 {
27     bst.insert(-INF);
28     bst.insert(INF);
29     scanf("%d",&n);
30     for (int i = 1;i <= n;i++)
31     {
32         int a,b;
33         scanf("%d%d",&a,&b);
34         if (bst.size() == 2)
35         {
36             flag = a;
37             bst.insert(b);
38         }
39         else if(a != flag)
40         {
41             int l =* --bst.lower_bound(b),r =* bst.lower_bound(b);
42             if (b - l <= r - b&&l > -INF) ans += b - l,bst.erase(l);
43             else ans += r - b,bst.erase(r);
44             ans %= mod;  
45         }
46         else bst.insert(b);
47     }
48     printf("%d\n",ans);
49     return 0;
50 }
View Code

 

posted @ 2014-01-06 19:18  乌拉拉979  阅读(130)  评论(0编辑  收藏  举报