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
#include <iostream>
using namespace std;
#include <cmath>


int main()
{
	int n; //liczba elementów ciągu
	int ilosDopisanychCyfr=0;

	//cout << "Podaj liczbę całkowitą n (n < 200 000): ";
	 cin >> n;

	if ( n >= 200000 || n <= 0) {
		//cout << "Podana liczba nie należy do zakresu";
	} else {

	    int t[n]; //tablica t - jednowymiarowa, n-elementowa

	    // wprowadzenie elementów ciągu do tablicy
	    for (int i=0; i<n; ++i) {
		    //cout << "Podaj kolejną liczbę całkowitą nr " << (i+1) << ": ";
		    cin >> t[i];
	    }

	    // sprawdzanie, czy elementy w tablicy t są posortowane rosnąco
	    bool rosnace = true;
	    for (int i=1; i<n; ++i) {
		    if (t[i-1] >= t[i]) {
			    rosnace = false;
		    }
	    }

	    // wypisanie wyniku
	    if (rosnace) {
		    //cout << "Tablica jest rosnaca!" << endl;
	    } else {
	        //cout<<"Ciag nie jest rosnacy "<<endl;
		    for (int i=1; i<n; ++i) {
			    if (t[i-1] >= t[i]) {
			        	ilosDopisanychCyfr++;
			    	// dopisanie max do tej liczby zeby w kolejnej iteracji sprawdzic tak jakby po dopisaniu
			        // (int)log10(liczba)+1 - ilośćcyfr w liczbie
			        // pow(10,(int)log10(t[i])+1)
			    	t[i] = t[i]*10;
			    	//cout << i << "...." << t[i-1] << "  " << t[i] << "  " << t[i+1] << endl;
			    }

		    }

	    }
	    cout  <<ilosDopisanychCyfr;
	}
}