读了一遍,还在想简单嘛,写完代码一试样例,自己理解错误,还是一句话的理解不到位,后面又读了好几遍,忽才发现自己的问题。。。。。教育场100C..

#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int N=2e5+5;
ll t[N];
ll x[N];
int main()
{
    cin.tie(0);
    cout.tie(0);
    ios::sync_with_stdio(false);
    int T;
    cin>>T;
    while(T--)
    {
        int n;
        cin>>n;
        int res=0;
        for(int i=1;i<=n;i++)
        {
            cin>>t[i]>>x[i]; 
        }
        t[0]=0;
        t[n+1]=(int)2e9+5;
        int l=1;
        int p=0;
        while(l<=n)
        {
            int tt=t[l]+abs(x[l]-p);
            if(tt>=t[l]&&tt<=t[l+1])res++;
            int t1=l;
            int tp=p;
            p=x[l];
            for(int j=l+1;j<=n+1;j++)
            {
                if(t[j]>=tt)
                {
                    l=j;
                    break;
                }
                else 
                {
                    int pt=t[l]+abs(x[j]-tp);
                    if(pt>=t[j]&&pt<=t[j+1]&&((x[j]>=tp&&x[j]<=x[t1])||(x[j]<=tp&&x[j]>=x[t1]))) 
                    {
                        res++;
                        //cout<<pt<<' '<<j<<" 666"<<endl;
                    }
                }
             } 

        }
        cout<<res<<endl;
    }
    return 0;
}