A. Divide and Multiply
给出几组数组,对于每组数组可以选取两个元素,其中一个除二,另一个乘二,输出通过此操作使数组之和最大的结果
开始用的排序,后来老是wr,看了下范围直接用两重循环吧。遍历数组每次选定一个要乘2的数,其他的都除二。通过比较这些情况最后得出一个最大的和。
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ll t,n,i,j;
cin>>t;
while(t--)
{
ll a[16],c[16];
ll k=0,posi,sum=0,ans=0;
cin>>n;
for(i=0; i<n; i++)
{
cin>>a[i];
c[i]=a[i];
ans=ans+a[i];
}
for(i=0;i<n;i++)
{
k=a[i];
sum=0;
for(j=0;j<n;j++)
{
if(i==j) continue;
while(a[j]%2==0)
{
a[j]=a[j]