#include <iostream>
#include <stack>
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n; cin >> n;
int res = 0;
int last = 0;
for (int i = 0; i < n; i++) {
int act;
cin >> act;
if (act <= last) {
int tmp = act;
stack<int> numsAct;
int countAct = 0;
while (tmp > 0) {
countAct++;
numsAct.push(tmp % 10);
tmp /= 10;
}
tmp = last;
stack<int> numslast;
int countlast = 0;
while (tmp > 0) {
countlast++;
numslast.push(tmp % 10);
tmp /= 10;
}
int status = 0; //0 - wszystkie cyfry rowne, 1 - dopisac 0, bo wyjdzie wieksza, 2 - dopisac o jedno 0 wiecej
while (!numsAct.empty()) {
if (numsAct.top() > numslast.top()) {
status = 1;
break;
}else if (numsAct.top() < numslast.top()) {
status = 2;
break;
}
numsAct.pop(); numslast.pop();
}
if (status == 0) {
res += countlast - countAct;
act = last + 1;
}else {
for (int i = 0; i < countlast - countAct + status - 1; i++) {
res++;
act *= 10;
}
}
}
last = act;
}
cout << res;
}
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 56 57 58 59 60 61 62 63 64 | #include <iostream> #include <stack> using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); int n; cin >> n; int res = 0; int last = 0; for (int i = 0; i < n; i++) { int act; cin >> act; if (act <= last) { int tmp = act; stack<int> numsAct; int countAct = 0; while (tmp > 0) { countAct++; numsAct.push(tmp % 10); tmp /= 10; } tmp = last; stack<int> numslast; int countlast = 0; while (tmp > 0) { countlast++; numslast.push(tmp % 10); tmp /= 10; } int status = 0; //0 - wszystkie cyfry rowne, 1 - dopisac 0, bo wyjdzie wieksza, 2 - dopisac o jedno 0 wiecej while (!numsAct.empty()) { if (numsAct.top() > numslast.top()) { status = 1; break; }else if (numsAct.top() < numslast.top()) { status = 2; break; } numsAct.pop(); numslast.pop(); } if (status == 0) { res += countlast - countAct; act = last + 1; }else { for (int i = 0; i < countlast - countAct + status - 1; i++) { res++; act *= 10; } } } last = act; } cout << res; } |
English