模拟未知温度,计算寒潮天数
#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;
}

京公网安备 11010502036488号