由于太菜只能做出前两题……
A. A Compatible Pair
思路:暴力枚举。
代码:
#include <cstdio>
#include <algorithm>
const int maxn=100;
const long long inf=0x3f3f3f3f3f3f3f3f;
int read()
{
int x=0,f=1;
char ch=getchar();
while((ch<'0')||(ch>'9'))
{
if(ch=='-')
{
f=-f;
}
ch=getchar();
}
while((ch>='0')&&(ch<='9'))
{
x=x*10+ch-'0';
ch=getchar();
}
return x*f;
}
int n,m,a[maxn+10],b[maxn+10];
long long ans=-inf;
int main()
{
n=read();
m=read();
for(register int i=1; i<=n; ++i)
{
a[i]=read();
}
for(register int i=1; i<=m; ++i)
{
b[i]=read();
}
int maxpos=0;
long long maxnum=-inf;
for(register int i=1; i<=n; ++i)
{
for(register int j=1; j<=m; ++j)
{
if(1ll*a[i]*b[j]>maxnum)
{
maxnum=1ll*a[i]*b[j];
maxpos=i;
}
}
}
for(register int i=1; i<=n; ++i)
{
if(i!=maxpos)
{
for(register int j=1; j<=m; ++j)
{
if(1ll*a[i]*b[j]>ans)
{
ans=1ll*a[i]*b[j];
}
}
}
}
printf("%I64d\n",ans);
return 0;
}
B. A Prosperous Lot
思路:尽量拿8去凑。
代码:
#include <cstdio>
int read()
{
int x=0,f=1;
char ch=getchar();
while((ch<'0')||(ch>'9'))
{
if(ch=='-')
{
f=-f;
}
ch=getchar();
}
while((ch>='0')&&(ch<='9'))
{
x=x*10+ch-'0';
ch=getchar();
}
return x*f;
}
int n;
int main()
{
n=read();
if(n>36)
{
puts("-1");
return 0;
}
if(n==1)
{
puts("9");
return 0;
}
while(n>=2)
{
putchar('8');
n-=2;
}
if(n)
{
putchar('0');
}
return 0;
}