为4的倍数,列出所有可能情况再判断即可
处理输入的数据对4取模
可得
4444
2244
2222
1111
3333
1133
1223
1344
1124
3324
共十种情况
所以得出答案
1 #include<bits/stdc++.h> 2 using namespace std; 3 int main(){ 4 int T,n,i,d,ar[4]; 5 scanf("%d",&T); 6 while(T--){ 7 fill(ar,ar+4,0); 8 scanf("%d",&n); 9 for(i=0;i<n;i++){ 10 scanf("%d",&d); 11 ar[d%4]++; 12 } 13 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) 14 puts("YES"); 15 else 16 puts("NO"); 17 } 18 19 return 0; 20 }
原文:https://www.cnblogs.com/stelayuri/p/12238926.html