#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; } |