Preliminaries for Benelux Algorithm Programming Contest 2019 (2020-3-14)

A:Architecture

解题思路:求出行和列的最大值,如果两个最大值相同,输出possible,否则输出impossible

AC代码:

#include<iostream>
#include<cstring>
using namespace std;
int main(){
int i,n,m,a,b,max1,max2;
cin>>n>>m;
for(i=0;i<n;i++){
cin>>a;
if(i==0){
max1=a;
}
if(a>max1){
max1=a;
}
}
for(i=0;i<m;i++){
cin>>b;
if(i==0){
max2=b;
}
if(b>max2){
max2=b;
}
}
if(max==max2){
cout<<"possible"<<endl;
}
else{
cout<<"impossible"<<endl;
}
return 0;
}

G.Greetings!

解题思路:将输入的字符串中的e’加倍输出

AC代码:

#include<iostream>
#include<cstring>
using namespace std;
int main(){
int i,m;
char a[1005];
cin>>a;
m=strlen(a);
for(i=0;i<m;i++){

cout<<a[i];

if(a[i]==’e’){

cout<<"e";

}
}
cout<<endl;
}

I.

解题思路:循环遍历,找出公式的最大值

AC代码:

#include<math.h>
#include<stdio.h>
#include<algorithm>
#include<iostream>
#include <string.h>
using namespace std;
int main()
{
    int i,n,a[1000010];
    long long sum=0,sum2=0,max=0;
    cin>>n;
    for(i=0;i<n;i++){
        cin>>a[i];
        sum+=a[i];
    }
    for(i=0;i<n;i++){
        t-=a[i];
        sum2+=a[i]*a[i];
        if(sum2*t>max){
            max=sum2*t;
        }
    }
    cout<<max;
        return 0;

}

F

AC代码:

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
int main(){

int n,flag=1;
long long m,k,i,j,a,b;
scanf("%d",&n);
    for(i=1;i<=sqrt(n)+1;i++){
     if(n%i==0){
     a=n/i;
     b=i;
     m=(a+b)/2;
     k=(a-b)/2;
     if((m+k)==a&&(m-k)==b&&(a-b)>=0){
     printf("%lld %lld\n",m,k);

     return 0;
}
}
}
   printf("impossible");
  return 0;
}

猜你喜欢

转载自www.cnblogs.com/a-specter/p/12506762.html