#include<bits/stdc++.h> using namespace std; #define db(x){if(cond)cerr<<__LINE__<<" "<<#x<<" " <<x<<endl;} #define rep(i,b)for(auto i=(0);i<(b);++i) #define fo(i,a,b)for(auto i=(a);i<=(b);++i) #define ford(i,a,b)for(auto i=(a);i>=(b);--i) #define all(x) (x).begin(),(x).end() #define vv vector #define pb push_back template<typename X>void MA(X&a,X b){a=max(a,b);}template<typename X>void MI(X&a,X b){a=min(a,b);} template<typename X>void clr(X&x,int a){memset(x,a,sizeof(a));};typedef long long ll;typedef long double ld; typedef array<int,2>i2;typedef vv<int>vi;int cond=0,multi=1,gcj=0; struct solver_t;solver_t *solver; struct solver_t{ void solve(){ int N;cin>>N; vi A(N);rep(i,N)cin>>A[i]; ll sum=0; rep(i,N)sum+=A[i]; if(sum%3==0)cout<<"Yes\n";else cout<<"No\n"; } void gen(){} void brute(){} }; int main(int argc,char** argv){ fo(i,1,argc-1)if(argv[i]==string("q"))cond=1<<30; fo(i,1,argc-1)if(argv[i]==string("gen")){(solver=new solver_t())->gen();exit(0);} fo(i,1,argc-1)if(argv[i]==string("brute")){(solver=new solver_t())->brute();exit(0);} ios::sync_with_stdio(false),cin.tie(0); cout.setf(ios::fixed),cout.precision(10);int t;if(multi||gcj)cin>>t;else t=1; fo(i,1,t){if(cond)cerr<<__LINE__<<" "<<i<<endl;if(gcj)cout<<"Case #"<<i<<": "; solver = new solver_t(); solver->solve(); }return 0; }