4355 2023. 03. 26 18:36:39 hackemon Főzet készítés cpp17 Elfogadva 50/50 340ms 6844 KiB
#include <bits/stdc++.h>
using namespace std;
//using namespace std::chrono;

#define pii pair<int,int>
#define pb push_back
#define vi vector<int>
#define vb vector<bool>
#define vl vector<ll>
#define vvi vector<vi>
#define vvb vector<vb>
#define vvl vector<vl>
#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")
#define fScan {ios_base::sync_with_stdio(false); cin.tie(NULL);}
#define rep(i, a, b) for(int i = a; i < (b); i++)
#define REP(i, n) for(int i = 0;i <(n); i++)
using ll = long long;
using ld = long double;
ll mod = 1000000007;

const char ny =  '\n';

bool prime(ll a) {
    if (a==1) return 0;
    for (int i=2;i*i<=a;++i)
    {
        if (a%i==0) return 0;
    }
    return 1;
}

ll gcd(ll a,ll b) {
    if (b==0) return a;
    return gcd(b,a%b);
}

ll lcm(ll a,ll b)
{
    return a/gcd(a,b)*b;
}

ll min(int a, ll b) {
    if(a< b) return a;
    else return b;
}





    vector<vector<int>> dp(501, vector<int>(501, 0));
    

    void precal() {
        vector<pair<int,int>> p;
        for(int i = 1;i <= 32;i++ ) {
            for(int z = 1;z <= 32;z++ ) {
                if(__gcd(i, z) == 1) {
                    p.push_back({i, z});
                }
            }
        }
        
        for(int i = 0;i < p.size();i++ ) {
            for(int z = 500;z >= p[i].first;z--) {
                for(int h = 500;h >= p[i].second;h--) {
                        dp[z][h] = max(dp[z][h], dp[z - p[i].first][h - p[i].second] + 1);
                }
            }
        }
    }


    void solve() { 
        int n, m;
        cin >> n >> m;
        cout << dp[n][m] << endl;
    }


int main()
{
    fScan


    precal();


    int t = 1;
    //comment out if necessary
    cin>> t;


    //auto start = high_resolution_clock::now();
    while(t-- ) {
        solve();
    }
    //auto end = high_resolution_clock::now();
    //auto dur = duration_cast<milliseconds>(end-start);
    //cout<< "runtime: " << dur.count() << " milliseconds" << '\n';
    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 335ms 3868 KiB
2 Elfogadva 0/0 338ms 4108 KiB
3 Elfogadva 3/3 335ms 4188 KiB
4 Elfogadva 2/2 335ms 4320 KiB
5 Elfogadva 3/3 335ms 4524 KiB
6 Elfogadva 2/2 335ms 4608 KiB
7 Elfogadva 3/3 337ms 4680 KiB
8 Elfogadva 2/2 337ms 4672 KiB
9 Elfogadva 3/3 338ms 5172 KiB
10 Elfogadva 2/2 338ms 5264 KiB
11 Elfogadva 2/2 337ms 5280 KiB
12 Elfogadva 2/2 337ms 5488 KiB
13 Elfogadva 2/2 338ms 5596 KiB
14 Elfogadva 2/2 337ms 5720 KiB
15 Elfogadva 2/2 340ms 5700 KiB
16 Elfogadva 2/2 338ms 5928 KiB
17 Elfogadva 2/2 340ms 5988 KiB
18 Elfogadva 2/2 340ms 6116 KiB
19 Elfogadva 2/2 338ms 6248 KiB
20 Elfogadva 3/3 340ms 6336 KiB
21 Elfogadva 3/3 338ms 6560 KiB
22 Elfogadva 3/3 337ms 6632 KiB
23 Elfogadva 3/3 337ms 6844 KiB