#include <iostream> using namespace std; #include<vector> #include<algorithm> struct Interval { long long l,r; Interval(long long l=0,long long r = 0):l(l),r(r){} }; long long getMaxIntersection(Interval a,Interval b){ long long interl = max(a.l,b.l); long long interR = min(a.r,b.r); if(interl>interR){ return -1; } return interR; } int main() { long long l1,r1,l2,r2,l3,r3; cin>>l1>>r1>>l2>>r2>>l3>>r3; vector<Interval>intervals={ Interval(l1,r1), Interval(l2,r2), Interval(l3,r3) }; long long maxSum=-1; for(int i=0;i<3;i++){ for(int j=0;j<3;j++){ if(i==j){ continue; } long long val1=getMaxIntersection(intervals[i], intervals[j]); if(val1==-1){ continue; } long long val2=getMaxIntersection(intervals[j], intervals[i]); if(val2==-1){ continue; } long long currentSum = val1+val2; if(currentSum>maxSum){ maxSum=currentSum; } } } cout<<maxSum<<endl; return 0; } // 64 位输出请用 printf("%lld")