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