模拟未知温度,计算寒潮天数

#include <iostream>
#include<vector>
using namespace std;

const int INF=-999;
const int MIN_T=-50;
const int MAX_T=50;
int maxcold(int n,int x,const vector<int>&arr){
    vector<int>a(arr);
    if(a[0]==INF)a[0]=MAX_T;
    for(int i=1;i<n;i++){
        if(a[i]==INF){
            int curr=a[i-1]-x;
            if(curr<MIN_T)curr=MAX_T;
            a[i]=curr;
        }
    }
    int cnt=0;
    for(int i=1;i<n;i++){
        if(a[i-1]-a[i]>=x)cnt++;
    }
    return cnt;
}
int mincold(int n,int x,const vector<int>&arr){
    vector<int>a(arr);
    if(a[0]==INF)a[0]=MIN_T;
    for(int i=1;i<n;i++){
        if(a[i]==INF){
            int curr=a[i-1]-x+1;
            if(curr<MIN_T)curr=MIN_T;
            a[i]=curr;
        }
    }
    int cnt=0;
    for(int i=1;i<n;i++){
        if(a[i-1]-a[i]>=x)cnt++;
    }
    return cnt;
}
int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int n,x;
    cin>>n>>x;
    vector<int>a(n);
    for(int i=0;i<n;i++){
        cin>>a[i];
    }
    int max_cnt=maxcold(n,x,a);
    int min_cnt=mincold(n,x,a);
    cout<<max_cnt<<" "<<min_cnt<<endl;
}