1033 2022. 02. 26 19:00:38 mraron Főzet készítés cpp14 Elfogadva 50/50 303ms 51576 KiB
#include<bits/stdc++.h>
using namespace std;
const int MAXN=505, SQRT=25;
int dp[SQRT][MAXN][MAXN];
vector<int> rel[MAXN];

int main() {
    ios_base::sync_with_stdio(false);
	cin.tie(0);
    cout.tie(0);
	
	for(int i=1;i<MAXN;++i) {
		for(int j=1;j<MAXN;++j) {
			if(__gcd(i,j)==1) {
				rel[i].push_back(j);
			}
		}
	}
	
    for(int nxt=1;nxt<SQRT;++nxt) {
        for(int i=0;i<MAXN;++i) {
            for(int j=0;j<MAXN;++j) {
                if(i==0 || j==0) {
                    dp[nxt][i][j]=0;
                    continue ;
                }
                
                int mX=i, mY=j, cnt=0;
                int ans=dp[nxt-1][mX][mY];
                for(int yy:rel[nxt]) {
                    mX-=nxt;
                    mY-=yy;
                    cnt++;
		
                    if(mX<0 || mY<0) break ;
		
                    ans=max(ans, dp[nxt-1][mX][mY]+cnt);
                }
                
                dp[nxt][i][j]=ans;
            }
        }
    }
    
	int T;
	cin>>T;
	while(T--) {
		int x,y;
		cin>>x>>y;
		if(x>y) swap(x,y);
		cout<<dp[24][x][y]<<"\n";
	}
    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 266ms 51292 KiB
2 Elfogadva 0/0 246ms 51372 KiB
3 Elfogadva 3/3 246ms 51368 KiB
4 Elfogadva 2/2 243ms 51376 KiB
5 Elfogadva 3/3 291ms 51380 KiB
6 Elfogadva 2/2 293ms 51372 KiB
7 Elfogadva 3/3 298ms 51408 KiB
8 Elfogadva 2/2 284ms 51424 KiB
9 Elfogadva 3/3 286ms 51436 KiB
10 Elfogadva 2/2 284ms 51456 KiB
11 Elfogadva 2/2 268ms 51476 KiB
12 Elfogadva 2/2 268ms 51376 KiB
13 Elfogadva 2/2 277ms 51380 KiB
14 Elfogadva 2/2 256ms 51448 KiB
15 Elfogadva 2/2 252ms 51512 KiB
16 Elfogadva 2/2 303ms 51536 KiB
17 Elfogadva 2/2 239ms 51568 KiB
18 Elfogadva 2/2 230ms 51500 KiB
19 Elfogadva 2/2 232ms 51552 KiB
20 Elfogadva 3/3 231ms 51548 KiB
21 Elfogadva 3/3 231ms 51576 KiB
22 Elfogadva 3/3 241ms 51552 KiB
23 Elfogadva 3/3 239ms 51556 KiB