📄 2882647_ac_125ms_4016k.cpp
字号:
#include <algorithm>
using namespace std;
int max(int a,int b)
{
return a < b ? b : a;
}
int s[1010001];
int main()
{
int cas, num, m, no;
int a[4], t, ans;
scanf("%d",&cas);
while(cas--)
{
scanf("%d%d%d%d",&a[0],&a[1],&a[2],&a[3]);
num = 0;
memset(s,0,sizeof(s));
s[0] = 1;
sort(a,a+4);
m = a[3];
no = 0;
for(t = 1; t <= 1010001&&no < m; t++)
{
if(t<a[0])
s[t] = 0;
else
if(t<a[1])
s[t] = s[t-a[0]];
else
if(t<a[2])
s[t] = s[t-a[0]]||s[t-a[1]];
else
if(t<a[3])
s[t] = s[t-a[0]]||s[t-a[1]]||s[t-a[2]];
else
s[t] = s[t-a[0]]||s[t-a[1]]||s[t-a[2]]||s[t-a[3]];
if(s[t]==0)
{
no = 0;
num++;
ans = t;
if(ans>1000000)
{
num--;
break;
}
}
else
no++;
}
printf("%d\n",num);
if(no>=m)
printf("%d\n",ans);
else
printf("-1\n");
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -