﻿/*
    Szám építése számjegyekből

    Feladat: adott k és k darab számjegy. Építsünk ezekből
    számot (eredeti sorrendben) és írjuk ki ezt, illetve
    a dupláját is.

    Pl. bemenet:
        4
        1 5 2 6

        kimenet:
            1526
            3052

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

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

    int szam = 0;

    for (int i = 0; i < k; i++) {
        int szj;
        cin >> szj;

        szam = szam * 10 + szj;
    }

    cout << szam << endl << 2*szam << endl;

    return 0;
}
*/

/*
    Szám tükörképe

    - tükörképnek nevezzük azt a számot, amiben ugyanazok
    a számjegyek szerepelnek, mint az eredetiben,
    de fordított sorrendben. Pl:

        135  tükörképe  531
        3    tükörképe  3
        1200 tükörképe  21

    Feladat: adott egy szám, építsük fel
    és írjuk ki a tükörképét!
*/
/*
#include <iostream>
using namespace std;

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

    int tukor = 0;

    while (n > 0) {
        int szj = n % 10;

        tukor = tukor * 10 + szj;

        n = n / 10;
    }

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

/*
    Szám építése számjegyekből fordított sorrendben

    Feladat: adott k és k darab számjegy. Építsünk ezekből
    számot (fordított sorrendben) és írjuk ki ezt, illetve
    a dupláját is.

    Pl. bemenet:
        4
        1 5 2 6

        kimenet:
            6251
           12502

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

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

    int szam = 0;
    int p = 1;

    for (int i = 0; i < k; i++) {
        int szj;
        cin >> szj;

        szam = szam + szj * p;
        p = p * 10;
    }

    cout << szam << endl << 2*szam << endl;

    return 0;
}
*/

/*
Feladatok:

1. Adott egy szám, építsük fel azt a számot, ami tartalmazza
ennek minden nem nulla számjegyét eredeti sorrendben!

Pl:     bemenet     kimenet
        120304      1234
        100         1
        123         123
*/
/*
#include <iostream>
using namespace std;

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

    int szam = 0;
    int p = 1;

    while (n > 0) {
        int szj = n%10;

        if (szj != 0) {
            //cout << szj << endl;
            szam = szam + szj * p;
            p = p * 10;
        }

        n = n / 10;
    }

    cout << szam << endl;

    return 0;
}
*/


// HF. Adott szám, írjuk ki, hogy palindrom-e!
/*
#include <iostream>
using namespace std;

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

    int eredeti = n;
    int tukor = 0;

    while (n > 0) {
        int szj = n % 10;

        tukor = tukor * 10 + szj;

        n = n / 10;
    }

    //cout << tukor << endl;
    if (tukor == eredeti)
        cout << "palindrom" << endl;
    else
        cout << "nem palindrom"
             << endl;

    return 0;
}
*/

/*
Feladat:
    Adott egy szám, építsünk fel egy másikat a prím
    számjegyeiből fordított sorrendben.

    Pl.
        123425  -> 5232
        478     -> 7
        114     -> 0

Megj: csak a 2,3,5,7 számjegyek prímek.
*/
/*
#include <iostream>
using namespace std;

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

    int tukor = 0;

    while (n > 0) {
        int szj = n % 10;

        if (szj == 2 || szj == 3
            || szj == 5 || szj ==7)
        {
            tukor = tukor * 10 + szj;
        }

        n = n / 10;

    }

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

/*
Feladat (+pontért): páros számjegyek duplázása.

Adott egy szám, építsük fel azt a számot,
amit úgy kapunk az eredetiből,
hogy minden páros számjegyét megduplázzuk.

Pl.     1234  ->  122344
        135   ->  135
        10    ->  100
        24    ->  2244
*/

/*
#include <iostream>
using namespace std;

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

    int eredmeny = 0;
    int p = 1;

    while (n > 0) {
        int szj = n % 10;

        if (szj % 2 == 0) {
            eredmeny = eredmeny + 11*szj*p;
            p = p * 100;
        }
        else {
            eredmeny = eredmeny + szj*p;
            p = p * 10;
        }

        n = n / 10;
    }

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

// Másképp:
/*
#include <iostream>
using namespace std;

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

    int eredmeny = 0;

    int p = 1;
    while (n / p > 0)
        p = p * 10;
    p = p / 10;


    while (p > 0) {
        int szj = (n/p)%10;

        if (szj % 2 == 0) {
            eredmeny = eredmeny * 10 + szj;
            eredmeny = eredmeny * 10 + szj;
        }
        else {
            eredmeny = eredmeny * 10 + szj;
        }

        p = p / 10;
    }


    cout << eredmeny << endl;
    return 0;
}


/*
Feladat (+pontért):
Adott egy szám, határozzuk meg a legnagyobb háromjegyű
számot, ami megjelenik ebben!

Pl. 21342  ->  342
    mert ő a legnagyobb a 213, 134, 342 közül.


Pl. 1813142  ->  813
    mert ő a legnagyobb a 181, 813, 131, 314, 142
    számok közül.
*/

#include <iostream>
using namespace std;

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

    int maximum = 0;


    while (n >= 100){
        int akt = n % 1000; // AKTuális érték

        if (akt > maximum) {
            maximum = akt;
        }

        n = n / 10;
    }


    cout << maximum << endl;
    return 0;
}

/*
    Felmérő ÁPRILIS 3.

    Számjegyes feladatok:
        - megoldottak + azokhoz hasonlók
        - osztályban, papíron
        - mindenképp kell:
            lebontás mindkét irányban,
            építés mindkét irányban
*/
