一、1000
1、Array Fix
AC code
#include<bits/stdc++.h>
using namespace std;
int a[55];
int merger(int x,int y){
int ge=x%10;
int shi=x/10;
if(ge<=y){
if(shi<=ge){
return shi;
}
}
return false;
}
int main(){
int t; cin>>t;
while(t--){
int n; cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
int f=0;
for(int i=n;i>=2;i--){
if(a[i-1]>a[i]){
if(!merger(a[i-1],a[i])){
f=1;
break;
}
else{
a[i-1]=merger(a[i-1],a[i]);
}
}
}
if(f) cout<<"NO"<<endl;
else cout<<"YES"<<endl;
}
}
从后向前遍历的原因
因为每一次拆分后的数据,会影响整个数组的增或减的性质,也就是,拆分后的数据,还需要再次判断使用。