题目链接

https://vjudge.net/contest/406673#problem/A

解题思路

找几个情况试试(不考虑特殊情况,何为特殊情况……自己判断吧),发现与现在这组比分的最小值,上组比分的最大值之差有关,但是存在特殊情况,比如样例2,比如0,0;2,2,比如1,0;3,3……。

AC代码

#include<bits/stdc++.h>
using namespace std;
const int N=1e4+100;
int n,a[N],b[N],ans=1;
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i]>>b[i];
        if(a[i]==a[i-1] && b[i]==b[i-1]) continue;//针对多个 0 0
        ans+=max(0,min(b[i],a[i])-max(b[i-1],a[i-1])+1);
        if(a[i-1]==b[i-1]) ans--;//针对相等的情况,额外-1;注意,判断的是前一组相等,则--。    
    }    
    cout<<ans<<endl;
    return 0;
}