博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CF1029C Maximal Intersection
阅读量:5213 次
发布时间:2019-06-14

本文共 1787 字,大约阅读时间需要 5 分钟。

https://www.luogu.org/problem/show?pid=CF1029C

1 #include
2 using namespace std ; 3 #define LL long long 4 5 LL read(){ 6 char c ; 7 int sign = 1 ; 8 while((c = getchar()) > '9' || c < '0') 9 if(c == '-') sign = -1 ;10 LL ans = c - '0' ;11 while((c = getchar()) <='9' && c >= '0')12 ans = ans * 10 + c - '0' ;13 return ans * sign ;14 }15 16 int n ;17 LL l[400000] , r[400000] ;18 LL la = 0 , ra = 10e9 + 1 ;19 20 void answer(){21 la = 0 , ra = 10e9 + 1 ;22 for(int i = 1 ; i <= n ; ++ i){23 la = max(la , l[i]) ;24 ra = min(ra , r[i]) ;25 }26 }27 28 int main(){29 n = read() ;30 LL ansl = 0 , ansr = 0 ;31 r[0] = 10e9 + 1 ;32 l[0] = 0 ;33 for(int i = 1 ; i <= n ; ++ i){34 l[i] = read() , r[i] = read() ;35 }36 answer() ;37 if(la > ra) {38 printf("%d",0);39 return 0 ;40 }41 for(int i = 1 ; i <= n ; ++ i){42 if(l[i] == la){43 if(r[i] < r[ansl]) {44 ansl = i ;45 }46 }47 if(r[i] == ra){48 if(l[i] > l[ansr]){49 ansr = i ;50 }51 }52 }53 if(ansr == ansl){54 l[ansr] = 0 ;55 r[ansr] = 10e9 + 1 ;56 answer() ;57 printf("%ld",ra - la) ;58 return 0 ;59 }60 else {61 LL ii = l[ansr] ;62 LL ff = r[ansr] ;63 l[ansr] = 0 , r[ansr] = 10e9 + 1 ;64 answer() ;65 LL len = ra - la ;66 l[ansr] = ii , r[ansr] = ff ;67 l[ansl] = 0 , r[ansl] = 10e9 + 1 ; 68 answer() ;69 len = max(len , ra - la) ;70 printf("%ld",len) ;71 return 0 ;72 }73 }

 

转载于:https://www.cnblogs.com/GC-hahaha/p/9553908.html

你可能感兴趣的文章
CoreData 从入门到精通(四)并发操作
查看>>
Swift - UIView的常用属性和常用方法总结
查看>>
Swift - 异步加载各网站的favicon图标,并在单元格中显示
查看>>
Java编程思想总结笔记Chapter 5
查看>>
[LeetCode]662. Maximum Width of Binary Tree判断树的宽度
查看>>
WinForm聊天室
查看>>
Python 从零学起(纯基础) 笔记(一)
查看>>
【Python学习笔记】1.基础知识
查看>>
梦断代码阅读笔记02
查看>>
Java 线程安全问题
查看>>
selenium学习中遇到的问题
查看>>
大数据学习之一——了解简单概念
查看>>
P1-13:集成日志组件 logback 2彩色日志
查看>>
Linux升级内核教程(CentOS7)
查看>>
Lintcode: Partition Array
查看>>
分享适合个人站长的5类型网站
查看>>
类别的三个作用
查看>>
【SICP练习】85 练习2.57
查看>>
runC爆严重安全漏洞,主机可被攻击!使用容器的快打补丁
查看>>
Maximum Product Subarray
查看>>