本来这题的难度没什么好说的,但xlk大神的代码实在是太神
可能blog以后也会继续收藏一些神代码
1 #include<stdio.h> 2 #include<iostream> 3 #include<vector> 4 #include<map> 5 #include<set> 6 #define X first 7 #define Y second 8 using namespace std; 9 map<int,vector<int>>a; 10 map<int,int>c; 11 multiset<int>s; 12 int n,h,x,y,z; 13 int main() 14 { 15 freopen("input.txt","r",stdin); 16 freopen("output.txt","w",stdout); 17 cin>>n; 18 s.insert(0); 19 for(int i=0;i<n;i++) 20 { 21 cin>>h>>x>>y; 22 a[x].push_back(h); 23 a[y].push_back(-h); 24 } 25 for(auto i:a) 26 { 27 for(auto j:i.Y) 28 if(j>0) 29 s.insert(j); 30 else 31 s.erase(s.find(-j)); 32 c[i.X]=*s.rbegin(); 33 } 34 h=0; 35 for(auto i:c) 36 if(h!=i.Y) 37 z+=2,h=i.Y; 38 cout<<z<<endl; 39 for(auto i:c) 40 if(h!=i.Y) 41 printf("%d %d\n%d %d\n",i.X,h,i.X,i.Y),h=i.Y; 42 }