问题描述
参考链接:https://blog.csdn.net/SongBai1997/article/details/83308345
https://www.cnblogs.com/syq816/p/9872416.html
1 #include<bits/stdc++.h> 2 using namespace std; 3 4 int main() 5 { 6 int n; 7 while(~scanf("%d",&n)) 8 { 9 long long sum=0; 10 long long a[2005][2]; 11 long long b[2005][2]; 12 for(int i=0;i<n;i++) 13 { 14 scanf("%lld",&a[i][0]); 15 scanf("%lld",&a[i][1]); 16 } 17 for(int i=0;i<n;i++) 18 { 19 scanf("%lld",&b[i][0]); 20 scanf("%lld",&b[i][1]); 21 long long x=a[i][0]>=b[i][0]?a[i][0]:b[i][0]; 22 long long y=a[i][1]<=b[i][1]?a[i][1]:b[i][1]; 23 if(y>x) 24 sum=sum+y-x; 25 } 26 printf("%lld\n",sum); 27 } 28 return 0; 29 }
后来在网上找到了另一个思路
参考大佬代码
1 #include<bits/stdc++.h> 2 using namespace std; 3 4 #define N 1000005 5 int a[N]; 6 int main() 7 { 8 int n,x,y; 9 scanf("%d",&n); 10 for(int i=1;i<=2*n;i++) 11 { 12 scanf("%d%d",&x,&y); 13 for(int j=x;j<y;j++) 14 a[j]++; 15 } 16 long long ans=0; 17 for(int i=1;i<N;i++) 18 if(a[i]==2) 19 ans++; 20 printf("%lld\n",ans); 21 return 0; 22 }
原文:https://www.cnblogs.com/carrothhh/p/11443900.html