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 ",m,k); return 0; } } } printf("impossible"); return 0; }