记录编号 |
154992 |
评测结果 |
AAAAAAAAA |
题目名称 |
[POI 2001] 区间 |
最终得分 |
100 |
用户昵称 |
wolf |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.068 s |
提交时间 |
2015-03-25 23:12:45 |
内存使用 |
0.32 MiB |
显示代码纯文本
#include<iostream>
#include<fstream>
#include<bitset>
#include<vector>
#include<deque>
#include<map>
#include<set>
#include<queue>
#include<string>
#include<algorithm>
#include<cmath>
#include<ctime>
#include<cstdio>
using namespace std;
#if defined wolf
const string ok="OK";
const string kk=" ";
ofstream nnew("prz.in",ios::app);
ifstream fin("prz.in");
#define fout cout
#define Endl endl
#else
ifstream fin("prz.in");
ofstream fout("prz.out");
#endif
map<int,int> TT;
map<int,int>::iterator st;
map<int,int>::iterator ed;
void core(int a,int b){
st=TT.upper_bound(a);
--st;
if((st->second)>=a){
st->second=max((st->second),b);
b=st->second;
ed=st;
}else{
TT[a]=b;
ed=TT.find(a);
}
st=TT.upper_bound(a);
while((st->first)<=b){
ed->second=max(ed->second,st->second);
b=st->second;
TT.erase(st);
st=TT.upper_bound(a);
}
}
int main(){
int n;
fin>>n;
TT[-1]=-1;
TT[1000005]=10000010;
for(int i=0;i!=n;++i){
int a,b;
fin>>a>>b;
core(a,b);
}
st=TT.begin();
ed=TT.end();
++st;
--ed;
while(st!=ed){
fout<<st->first<<" "<<st->second<<endl;
++st;
}
//-------------------------*/
#if defined wolf
cout<<endl<<(double)clock()/CLOCKS_PER_SEC<<'s'<<endl;
#endif
return 0;
}
//Designed by wolf
//Wed Mar 25 2015