Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- ifstream fin("diagonala.in");
- ofstream fout("diagonala.out");
- const int nmx=200005;
- int n,i,j,p,nr,rez;
- struct Seg
- { int x,y; } filn[nmx],ln[nmx];
- int intersect(Seg a,Seg b)
- {
- if(max(a.x,b.x)<=min(a.y,b.y)) return 1;
- return 0;
- }
- void solve()
- {
- p=1;
- for(i=2;i<=n;i++)
- {
- while(intersect(ln[i],ln[p])==0)
- p++;
- rez=max(rez,i-p+1);
- }
- }
- int main() {
- fin>>n;
- for(i=1;i<=n;i++)
- fin>>filn[i].x>>filn[i].y;
- rez=1;
- for(i=1;i<=n;i++)
- ln[i]={filn[i].x+(i-1), filn[i].y+(i-1)};
- solve();
- for(i=n;i>=1;i--)
- ln[i]={filn[i].x+(n-i), filn[i].y+(n-i)};
- solve();
- fout<<rez<<"\n";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement