1. 常见的字符串处理方式,详细见注释,记得结果加long long 否则过不去

    #include<bits/stdc++.h>
    using namespace std;
    const int mod = 99997867;
    int main(){
     long long N,D;
     int x;
     while(cin>>N>>D){
         vector<long> pos;
         for(int i = 0; i< N;i++){
             cin>>x;
             pos.push_back(x);
         }
    
         long long res = 0;
         int left = 0;
         int right = 2;
    
         for(;left<N-2;){
             //注意小于n.
             while(right<N&&pos[right]-pos[left]<=D){
                 right++;
             }
    
             if(right-left-1>=2){
                 long long num = right - left -1;//排列组合。
                 res+= num*(num-1) /2; //跟新结果。
             }
             left++;
         }
    
         cout<<res%mod<<endl;
    
     }
    
    
return 0;

}
```