#include <bits/stdc++.h> using namespace std; #define LL long long int n; long long wynik = 0; int len(LL a){ int wyn = 0; while( a > 0 ){ a /= 10; wyn++; } return wyn; } int por(LL a, LL o){ int len_a = len(a); int len_o = len(o); bool mozna_dod = 0; while( len_a < len_o ) { if( o % 10 != 9 ) mozna_dod = 1; o /= 10; len_o--; } if( a < o ) return 0; if( a == o ) return mozna_dod; if( a > o ) return 0; } void dopisuj(){ long long ostatnia = 0; long long len_ost = 0; while(n--){ //cout << ostatnia << endl; long long a; cin >> a; int len_a = len(a); if( len_ost < 17 ){ if( por(a, ostatnia) == 0 ){ //cout << a << endl; while( a <= ostatnia ){ a *= 10; wynik++; } ostatnia = a; len_ost = len(a); } else { wynik += len_ost - len_a; ostatnia++; } } else{ //cout << ostatnia << endl; LL temp = ostatnia; int len_t = len(temp); while( len_t > len_a ){ len_t--; temp /= 10; } if( temp != a ){ while( a < ostatnia ) a *= 10; if( len(a) > 17 ){ len_ost++; a /= 10; } ostatnia = a; } wynik += len_ost - len_a; } } } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cin >> n; dopisuj(); cout << wynik << endl; return 0; }
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 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | #include <bits/stdc++.h> using namespace std; #define LL long long int n; long long wynik = 0; int len(LL a){ int wyn = 0; while( a > 0 ){ a /= 10; wyn++; } return wyn; } int por(LL a, LL o){ int len_a = len(a); int len_o = len(o); bool mozna_dod = 0; while( len_a < len_o ) { if( o % 10 != 9 ) mozna_dod = 1; o /= 10; len_o--; } if( a < o ) return 0; if( a == o ) return mozna_dod; if( a > o ) return 0; } void dopisuj(){ long long ostatnia = 0; long long len_ost = 0; while(n--){ //cout << ostatnia << endl; long long a; cin >> a; int len_a = len(a); if( len_ost < 17 ){ if( por(a, ostatnia) == 0 ){ //cout << a << endl; while( a <= ostatnia ){ a *= 10; wynik++; } ostatnia = a; len_ost = len(a); } else { wynik += len_ost - len_a; ostatnia++; } } else{ //cout << ostatnia << endl; LL temp = ostatnia; int len_t = len(temp); while( len_t > len_a ){ len_t--; temp /= 10; } if( temp != a ){ while( a < ostatnia ) a *= 10; if( len(a) > 17 ){ len_ost++; a /= 10; } ostatnia = a; } wynik += len_ost - len_a; } } } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cin >> n; dopisuj(); cout << wynik << endl; return 0; } |