A. Stock Arbitraging
签到题,买股票,就是买的价格分别为si,卖的价格分别为bi,用最少的钱买进,用最大的价格卖出,还有别忘记加上买股票是剩下的钱
# include <bits/stdc++.h>
using namespace std;
typedef long long LL;
LL s[40];
LL b[40];
bool cmp(LL a,LL b)
{
return a>b;
}
int main()
{
LL n,m,r;
LL aa,bb;
scanf("%lld %lld %lld",&n,&m,&r);
for(int i=0;i<n;i++){
scanf("%lld",&s[i]);
}
for(int i=0;i<m;i++){
scanf("%lld",&b[i]);
}
sort(s,s+n);
sort(b,b+m,cmp);
//cout<<s[0]<<" "<<b[0]<<endl;
aa=r/s[0];
bb=b[0]*aa+r%s[0];
printf("%lld",max(bb,r));
return 0;
}
B. Tiling Challenge
就是暴力判断是否是可以用哪个图形填满。同时不要忘记边界的判断。
# include <bits/stdc++.h>
using namespace std;
char mb[60][60];
int flag=1;
int n;
int x[]={0,1,1,1,2};
int y[]={0,-1,0,1,0};
int main()
{
scanf("%d",&n);
getchar();
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
scanf("%c",&mb[i][j]);
}
getchar();
}
int nn=0;
while(nn<n*n){
int xx=nn/n;
int yy=nn%n;
if(nn>=n*n){
break;
}
int flag1=1;
if(mb[xx][yy]=='.'){
for(int i=0;i<5;i++){
//cout<<xx+x[i]<<" "<<yy+y[i]<<endl;
if(((xx+x[i])>=0&&xx+x[i]<n)&&((yy+y[i])>=0&&(yy+y[i])<n)){
if(mb[xx+x[i]][yy+y[i]]=='.'){
continue;
}else{
flag=0;
flag1=0;
break;
}
}else{
flag=0;
flag1=0;
break;
}
}
if(flag1){
for(int i=0;i<5;i++){
mb[xx+x[i]][yy+y[i]]='#';
}
nn++;
}else{
break;
}
}else{
nn++;
}
}
if(flag){
printf("YES");
}else{
printf("NO");
}
return 0;
}
C. Prefix Sum Primes
就是尽可能的让数字之和组成素数,由打表可得,素数差的规律(一下是从2开始的两个素数之差),可以看出素数之差大部分是偶数,而素数大部分是奇数,所以所给的1的个数很重要,根据1和2的个数判断
# include <bits/stdc++.h>
using namespace std;
const int MAXN=2e5+20;
int a[MAXN];
int main()
{
int n;
int flag=0;
int ysum=0,esum=0;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
if(a[i]==1){
ysum++;
}else{
esum++;
}
}
if(ysum==0){
for(int i=0;i<n;i++){
printf("%d ",a[i]);
}
}else if(ysum==1){
if(esum>0){
printf("2 ");
esum--;
}
printf("1 ");
for(int i=0;i<esum;i++){
printf("2 ");
}
}else if(ysum==2){
if(esum>0){
printf("2 ");
esum--;
}
printf("1 ");
for(int i=0;i<esum;i++){
printf("2 ");
}
printf("1");
}else if(ysum>=3){
printf("1 1 1 ");
ysum-=3;
for(int i=0;i<esum;i++){
printf("2 ");
}
for(int i=0;i<ysum;i++){
printf("1 ");
}
}
return 0;
}