题目链接:https://atcoder.jp/contests/arc080/tasks/arc080_a
题意:
给你n个数,问你能不能找到一种排列使相邻两个数的乘积为4的倍数。是输出“Yes”否则输出“No”;
思路:
两个数的乘积为4的倍数 1是两个数其中有一个为4的倍数;2是两个数都是偶数;
代码:
#include<bits/stdc++.h>
using namespace std;
int a[200009];
int main()
{
int n;
cin>>n;
int two=0;
int fou=0;
for(int i=1;i<=n;i++)
{
cin>>a[i];
if(a[i]%4==0)
{
fou++;
}
else if(a[i]%2==0)
{
two++;
}
}
n-=(two/2)*2;
n-=fou;
if(fou>=n-1)
{
cout<<"Yes"<<endl;
}
else
{
cout<<"No"<<endl;
}
}