1133 2022. 03. 13 16:23:56 ZsofiaKeresztely Főzet készítés cpp11 Időlimit túllépés 0/50 550ms 47096 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
	vector<vector<int> > relprim(500);
	relprim[1].push_back(1);
	for (int i=1; i<500; i++)
	{
		for (int j=1; j<i; j++)
		{
			if (__gcd(i, j)==1)
			{
				relprim[i].push_back(j);
				relprim[j].push_back(i);
			}
		}
	}
	vector<vector<vector<int> > > dp(501, vector<vector<int> >(501, vector<int>(35)));
	//a, b, i
	int ak, bk;
	for (int a=1; a<=500; a++)
	{
		for (int b=1; b<=500; b++)
		{
			for (int i=sqrt(2*a); i>0; i--)
			{
				ak=0; bk=0;
				for (int x : relprim[i])
				{
					ak+=i; bk+=x;
					if (a-ak<0||b-bk<0)
					{
						break;
					}
					else
					{
						dp[a][b][i]=max(dp[a][b][i], dp[a-ak][b-bk][i+1]+ak/i);
					}
				}
				/*
				a darab van összesen az elsőből
				b darab a másodikból
				dp[a][b][i] = hány darabot tudunk csinálni maximum, ha az elsőből mindig legalább i-t használunk
				*/
				
			}
		}
	}
	int t, a, b;
	cin>>t;
	for (int i=0; i<t; i++)
	{
		cin>>a>>b;
		cout<<dp[a][b][1]<<"\n";
	}
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 0/50
1 Időlimit túllépés 0/0 479ms 47032 KiB
2 Időlimit túllépés 0/0 460ms 46996 KiB
3 Időlimit túllépés 0/3 481ms 47024 KiB
4 Időlimit túllépés 0/2 460ms 47072 KiB
5 Időlimit túllépés 0/3 460ms 46960 KiB
6 Időlimit túllépés 0/2 504ms 46952 KiB
7 Időlimit túllépés 0/3 456ms 47096 KiB
8 Időlimit túllépés 0/2 497ms 46980 KiB
9 Időlimit túllépés 0/3 477ms 46984 KiB
10 Időlimit túllépés 0/2 493ms 46984 KiB
11 Időlimit túllépés 0/2 470ms 47052 KiB
12 Időlimit túllépés 0/2 485ms 46920 KiB
13 Időlimit túllépés 0/2 547ms 46988 KiB
14 Időlimit túllépés 0/2 499ms 46988 KiB
15 Időlimit túllépés 0/2 550ms 46924 KiB
16 Időlimit túllépés 0/2 483ms 46988 KiB
17 Időlimit túllépés 0/2 523ms 46992 KiB
18 Időlimit túllépés 0/2 488ms 46988 KiB
19 Időlimit túllépés 0/2 490ms 46988 KiB
20 Időlimit túllépés 0/3 500ms 46984 KiB
21 Időlimit túllépés 0/3 541ms 46980 KiB
22 Időlimit túllépés 0/3 503ms 46988 KiB
23 Időlimit túllépés 0/3 483ms 47052 KiB