Problem - 1692F - Codeforces
先统计求出每个数对10取余的数的数量 , 然后暴力判断,时间O(10^3);
#include<bits/stdc++.h>using namespace std;#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);#define endl '\n'typedef long long LL;const int N = 2e5 + 10 ;int a[N] ;inline void solve(){int n ; cin >> n ;vector<int> b(10) ;for(int i=1;i<=n;i++) cin >> a[i] , a[i]%=10 , b[a[i]]++ ;for(int i=0;i<10;i++){if(b[i]-1<0) continue ;for(int j=0;j<10;j++){if(j==i && b[j]<2) continue ;if(b[j]<1) continue ;for(int k=0;k<10;k++){if(k==i&&k==j&&b[k]<3) continue;if(k==i&&b[k]<2) continue ;if(k==j&&b[k]<2) continue ;if(b[k]<1) continue ;if((i+j+k)%10==3){cout << "Yes" << endl ;return ;}}}}cout << "NO" << endl ;return ;}signed main(){IOSint _ = 1;cin >> _;while(_ --) solve();return 0;}