#include <bits/stdc++.h> using namespace std; int main(){ long long n,k,wyn,li,pot,z1,z; cin >> n; vector <long long> tab; vector <long long>tab1; wyn=0; string zm,zm1,m,zm2; char w; cin >> k; zm= to_string(k); z=k; for(int i=0; i<=n-2; i++){ cin >> k; zm1= to_string(k); z1=k; if(zm.size()>=zm1.size()){ if(zm.size()>zm1.size()){ pot=zm1.size()-1; while(zm.size()!=zm1.size()){ zm1+="0"; wyn++; } zm2=zm1; for(int j=pot+1; j<=zm.size(); j++){ if(zm1[j]>zm[j]){ break; }else if(zm[j]>=zm1[j] && zm[j]!='9' && zm1[j+1]!='0'){ zm1[j]=zm[j]; zm1[j]++; break; }else if(zm[j]>=zm1[j] && zm[j]=='9'){ if(zm1[j-1]!='9' && j-1>=pot && j-1>0){ zm1[j-1]++; zm1[j]='0'; }else zm1[j]='9'; } } if(zm==zm1){ wyn++; zm1=zm2; zm1+="0"; } }else if(zm1.size()==zm.size() && z1<=z){ zm1+="0"; wyn++; }z1=atoi(zm1.c_str()); }zm=zm1;z=z1; } cout << wyn; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | #include <bits/stdc++.h> using namespace std; int main(){ long long n,k,wyn,li,pot,z1,z; cin >> n; vector <long long> tab; vector <long long>tab1; wyn=0; string zm,zm1,m,zm2; char w; cin >> k; zm= to_string(k); z=k; for(int i=0; i<=n-2; i++){ cin >> k; zm1= to_string(k); z1=k; if(zm.size()>=zm1.size()){ if(zm.size()>zm1.size()){ pot=zm1.size()-1; while(zm.size()!=zm1.size()){ zm1+="0"; wyn++; } zm2=zm1; for(int j=pot+1; j<=zm.size(); j++){ if(zm1[j]>zm[j]){ break; }else if(zm[j]>=zm1[j] && zm[j]!='9' && zm1[j+1]!='0'){ zm1[j]=zm[j]; zm1[j]++; break; }else if(zm[j]>=zm1[j] && zm[j]=='9'){ if(zm1[j-1]!='9' && j-1>=pot && j-1>0){ zm1[j-1]++; zm1[j]='0'; }else zm1[j]='9'; } } if(zm==zm1){ wyn++; zm1=zm2; zm1+="0"; } }else if(zm1.size()==zm.size() && z1<=z){ zm1+="0"; wyn++; }z1=atoi(zm1.c_str()); }zm=zm1;z=z1; } cout << wyn; } |