9293 2024. 02. 20 10:57:20 AGergo A sárkány feladványa (50) cpp17 Elfogadva 50/50 4ms 4624 KiB
#include <bits/stdc++.h>

using namespace std;

int main()
{
    cin.tie(0);
    iostream::sync_with_stdio(0);

    vector<int> oszt1(100001,0);
    vector<int> oszt2(100001,0);

    vector<int> sz1(3);
    vector<int> sz2(3);
    vector<int> len(3);

    for(int i = 0; i < 3; i++)
    {
        cin >> sz1[i];
        cin >> sz2[i];
        cin >> len[i];
    }

    for(int x = 0; x < 3; x++)
    {


        int t = sqrt(sz1[x]);

        for(int i = 2; i <= t; i++)
        {
            while(sz1[x]% i == 0)
            {
                oszt1[i]++;
                sz1[x]/=i;
                //cout << sz1[x] << " " <<i << endl;
            }
        }

        oszt1[sz1[x]]++;

        t = sqrt(sz2[x]);
        for(int i = 2; i <= t; i++)
        {
            while(sz2[x]% i == 0)
            {
                oszt2[i]++;
                sz2[x]/=i;
                //cout << sz2[x] << " " <<i << endl;
            }
        }

        oszt2[sz2[x]]++;

        long ans = 1;

        for(int i= 2; i < 100000;i++)
        {
            if(oszt1[i] != 0 && oszt2[i] != 0)
            {
                if(oszt1[i] > oszt2[i])
                {
                    for(int j= 0; j < oszt1[i];j++)
                    {
                        ans*=i;
                    }
                }
                else
                {
                    for(int j= 0; j < oszt2[i];j++)
                    {
                        ans*=i;
                    }
                }
                oszt2[i] = 0;
                oszt1[i] = 0;
            }
            else if(oszt1[i] != 0)
            {
                for(int j= 0; j < oszt1[i];j++)
                {
                    ans*=i;
                }
                oszt1[i] = 0;
            }
            else if(oszt2[i] != 0)
            {
                for(int j= 0; j < oszt2[i];j++)
                {
                    ans*=i;
                }
                oszt2[i] = 0;
            }
        }
        int leng = (int)log10(ans)+1;
        // ans ->lkkt

        if(leng <= len[x])
        {
            cout << ans;
            for(int i= 0; i < len[x]-leng;i++)
            {
                cout << "0";
            }
            cout << endl;
        }
        else
        {
            cout << "-1\n";
        }


    }



}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 4ms 3104 KiB
2 Elfogadva 0/0 4ms 3424 KiB
3 Elfogadva 3/3 3ms 3384 KiB
4 Elfogadva 3/3 4ms 3660 KiB
5 Elfogadva 3/3 4ms 3892 KiB
6 Elfogadva 3/3 4ms 3892 KiB
7 Elfogadva 3/3 4ms 4036 KiB
8 Elfogadva 3/3 3ms 3996 KiB
9 Elfogadva 3/3 4ms 4252 KiB
10 Elfogadva 3/3 4ms 4212 KiB
11 Elfogadva 3/3 4ms 4344 KiB
12 Elfogadva 3/3 3ms 4364 KiB
13 Elfogadva 4/4 4ms 4624 KiB
14 Elfogadva 4/4 4ms 4588 KiB
15 Elfogadva 4/4 4ms 4588 KiB
16 Elfogadva 4/4 4ms 4588 KiB
17 Elfogadva 4/4 4ms 4624 KiB