为4的倍数,列出所有可能情况再判断即可
处理输入的数据对4取模
可得
4444
2244
2222
1111
3333
1133
1223
1344
1124
3324
共十种情况
所以得出答案
#include<bits/stdc++.h> using namespace std; int main(){ int T,n,i,d,ar[4]; scanf("%d",&T); while(T--){ fill(ar,ar+4,0); scanf("%d",&n); for(i=0;i<n;i++){ scanf("%d",&d); ar[d%4]++; } if(ar[0]>=4||ar[0]>=2&&ar[2]>=2||ar[2]>=4||ar[1]>=4||ar[3]>=4||ar[1]>=2&&ar[3]>=2||ar[1]>=1&&ar[3]>=1&&ar[2]>=2||ar[1]>=1&&ar[3]>=1&&ar[0]>=2||ar[1]>=2&&ar[2]>=1&&ar[0]>=1||ar[3]>=2&&ar[2]>=1&&ar[0]>=1) puts("YES"); else puts("NO"); } return 0; }