﻿/*
    Sorozatokkal kapcsolatos feladatok

    Sorozatok beolvasása

    1. megadási mód:
        adott az elemek száma, majd
        annyi darab elem

        Pl.
            5
            100  105  200  32  14

    Feladat: adott n, majd n egy n
    elemű sorozat, aminek az elemei
    természetes számok. Számítsuk ki
    az elemek összegét és átlagát!
*/
/*
#include <iostream>
using namespace std;

int main()
{
    int n;
    cout << "n = ";
    cin >> n;

    int s = 0;

    for (int i = 1; i <= n; i++) {
        int elem;
        cin >> elem;

        s = s + elem;
    }

    cout << "osszeg: " << s << endl;
    cout << "atlag: "
         << (double) s / n << endl;

    return 0;
}
*/
/*
    2. megadási mód:
        addig olvasunk, amíg lehet
        (amíg le nem zárják a bemenetet)

    Bemenet lezárása: [Ctrl+Z], majd [Enter]

    Feladat: olvassunk be egész számokat,
    míg a felhasználó le nem zárja a
    bemenetet, majd írjuk ki, hogy hány
    számot olvastunk be.
*/
/*
#include <iostream>
using namespace std;

int main()
{
    int db = 0;

    int elem;
    while (cin >> elem) {
        db++;
    }

    cout << db << " darab szam volt"
         << endl;

    return 0;
}
*/

/*
    3. megadási mód:
        addig olvasunk, amíg valamilyen
        leállási feltétel igaz nem lesz

    Feladat: olvassunk be természetes
    számokat, míg egy -1-et nem találunk,
    majd írjuk ki a beolvasott számok
    szorzatát (a -1 kivételével).
*/
/*
#include <iostream>
using namespace std;

int main()
{
    int szorzat = 1;

    int elem;
    cin >> elem;

    while (elem != -1) {
        szorzat = szorzat * elem;

        cin >> elem;
    }

    cout << "szorzat: " << szorzat << endl;
    return 0;
}
*/


/*
    HF:

    1. Adott n és n darab természetes szám.
    Határozzuk meg a sorozatban megjelenő
    legnagyobb értéket!

    2. Adottak természetes számok és egy -1
    jelzi a sorozat végét. Határozzuk meg a
    páratlan elemek összegét!
*/

/*
// 1.

#include <iostream>
using namespace std;

int main()
{
    int n;
    cout << "n = ";
    cin >> n;

    int legnagyobb = -1;

    for (int i = 1; i <= n; i++) {
        int elem;
        cin >> elem;

        if (elem > legnagyobb) {
            legnagyobb = elem;
        }
    }

    cout << legnagyobb << endl;

    return 0;
}
*/

/*
Megjegyzések:
    - az INT_MIN  konstans tartalmazza az
      int-ben tárolható legkisebb értéket
    - az INT_MAX  konstans tartalmazza az
      int-ben tárolható legnagyobb értéket

Ahhoz, hogy ezeket használjuk, a program elején
meg kell jelenjen az alábbi szöveg:
    #include <climits>
*/

/*
#include <iostream>
#include <climits>
using namespace std;

int main()
{
    cout << INT_MIN << endl;
    cout << INT_MAX << endl;

    return 0;
}
*/

/*
// 2.
#include <iostream>
using namespace std;

int main()
{
    int elem;
    cin >> elem;

    int s = 0;

    while (elem != -1) {
        if (elem % 2 == 1) {
            s += elem;  // s = s + elem;
        }

        cin >> elem;
    }

    cout << s << endl;

    return 0;
}
*/

/* Feladat: Adott n, majd n darab természetes szám,
            lesz közöttük legalább egy páros.

        Írjuk ki, hogy melyik az első és melyik az
        utolsó páros szám!

    Pl. 5
        1 2 3 4 5
        akkor a kimenet legyen: 2 4

    Pl. 5
        1 2 3 7 5
        akkor a kimenet: 2
*/
/*
#include <iostream>
using namespace std;

int main()
{
    int n;
    cout << "n = ";
    cin >> n;

    int elso = -1;
    int utolso = -1;

    for (int i = 1; i <= n; i++) {
        int elem;
        cin >> elem;

        if (elem % 2 == 0) { // páros

            utolso = elem;

            if (elso == -1) {
                elso = elem;
            }
        }
    }

    cout << elso << " " << utolso << endl;

    return 0;
}
*/

/*
Feladat: Adott n és egy n elemű sorozat.
         Adjuk össze minden második elemét!


    Pl.  7
         10 20 30 40 11 22 3
            *     *     *       -> kimenet: 82

    Pl.  1
         100   ->  kimenet: 0

    Pl.  2
         100 200  -> kimenet: 200
*/
/*
#include <iostream>
using namespace std;

int main()
{
    int n;
    cout << "n = ";
    cin >> n;

    int s = 0;

    for (int i = 1; i <= n; i++) {
        int elem;
        cin >> elem;

        if (i % 2 == 0) {
            s = s + elem;
        }
    }

    cout << s << endl;
    return 0;
}
*/

// HF. Oldjuk meg az előbbit, de nincs megadva
// az elemek száma, hanem egy -1 megjelenéséig
// olvasunk (és a -1 már nem része a sorozatnak).
/*
#include <iostream>
using namespace std;

int main()
{
    int szam;
    cin >> szam;

    int s = 0;
    int i = 1;

    while (szam != -1) {

        if (i % 2 == 0)
            s = s + szam;

        cin >> szam;
        i++;
    }

    cout << s << endl;

    return 0;
}
*/

/*
    Feladat: Adott egy n, majd n darab elem.
    Számítsuk ki azoknak az elemeknek az átlagát,
    amik prímszámok.

    Pl. 5
        10 13 20 23 5
        akkor a kimenet: 13.666...
            mert (13+23+5)/3 ~= 13.666...
*/
/*
#include <iostream>
using namespace std;

int main()
{
    int n;
    cout << "n = ";
    cin >> n;

    int osszeg = 0;
    int hany_prim = 0;

    for (int i = 1; i <= n; i++) {
        int elem;
        cin >> elem;

        // Ha az "elem" prím, akkor adjuk
        // hozzá az összeghez, és növeljük a
        // hany_prim értékét.

        int hany_oszto = 0;

        for (int j = 1; j <= elem; j++) {
            if (elem % j == 0) {
                ++hany_oszto;
            }
        }

        if (hany_oszto == 2) {
            osszeg += elem;
            hany_prim++;
        }
    }

    cout << (double) osszeg / hany_prim << endl;

    return 0;
}
*/


/*
    Feladat: Adott n, majd n darab természetes szám.
    Írjuk ki mindegyik esetén, hogy hány számjegye
    van!

    Pl. bemenet:
        5
        1 43 5 123 0

        kimenet:
        1 - 1
        43 - 2
        5 - 1
        123 - 3
        0 - 1
*/
/*
#include <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;

    for (int i = 1; i <= n; i++) {
        int elem;
        cin >> elem;

        cout << elem << " - ";

        int db = 0;
        do {
            db++;
            elem = elem / 10;
        } while (elem > 0);

        cout << db << endl;
    }

    return 0;
}
*/


/*
    Feladat: Adott n, majd n darab természetes szám.
    Írjuk ki, hogy melyiknek van a legtöbb számjegye!
    (Holtverseny esetén a bal oldalit.)

    Pl. bemenet:
        5
        1 43 5 123 0

        kimenet: 123


    Pl. bemenet:
        5
        1 13 5 92 0

        kimenet: 13
*/
#include <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;

    int maxdb = 0;
    int kinel;

    for (int i = 1; i <= n; i++) {
        int elem;
        cin >> elem;
        int eredeti = elem;

        //cout << elem << " - ";

        int db = 0;
        do {
            db++;
            elem = elem / 10;
        } while (elem > 0);

        //cout << db << endl;

        if (db > maxdb) {
            maxdb = db;
            kinel = eredeti;
        }
    }

    cout << kinel << endl;

    return 0;
}
