General
 
 
# Author Problem Lang Verdict Time Memory Sent Judged  
166799175 Practice:
r0hit
1714E - 25 C++14 (GCC 6-32) Wrong answer on test 2 15 ms 144 KB 2022-08-03 14:24:04 2022-08-03 14:24:04
→ Source
#include <bits/stdc++.h>
using namespace std;

#define INF 1e18
#define MOD 1000000007
// #define N 300015
#define N 15

typedef long long int ll;
typedef long double lld;
typedef unsigned long long ull;

#ifndef ONLINE_JUDGE
#define debug(x)       \
    cerr << #x << " "; \
    _print(x);         \
    cerr << endl;
#else
#define debug(x)
#endif

void _print(ll t)
{
    cerr << t;
}
void _print(int t) { cerr << t; }
void _print(string t) { cerr << t; }
void _print(char t) { cerr << t; }
void _print(lld t) { cerr << t; }
void _print(double t) { cerr << t; }
void _print(ull t) { cerr << t; }

template <class T, class V>
void _print(pair<T, V> p);
template <class T>
void _print(vector<T> v);
template <class T>
void _print(set<T> v);
template <class T, class V>
void _print(map<T, V> v);
template <class T>
void _print(multiset<T> v);
template <class T, class V>
void _print(pair<T, V> p)
{
    cerr << "{";
    _print(p.first);
    cerr << ",";
    _print(p.second);
    cerr << "}";
}
template <class T>
void _print(vector<T> v)
{
    cerr << "[ ";
    for (T i : v)
    {
        _print(i);
        cerr << " ";
    }
    cerr << "]";
}
template <class T>
void _print(set<T> v)
{
    cerr << "[ ";
    for (T i : v)
    {
        _print(i);
        cerr << " ";
    }
    cerr << "]";
}
template <class T>
void _print(multiset<T> v)
{
    cerr << "[ ";
    for (T i : v)
    {
        _print(i);
        cerr << " ";
    }
    cerr << "]";
}
template <class T, class V>
void _print(map<T, V> v)
{
    cerr << "[ ";
    for (auto i : v)
    {
        _print(i);
        cerr << " ";
    }
    cerr << "]";
}

ll _lu[N][(int)log2(N)];

void preprocess(vector<ll> a, bool _isSum = false)
{
    int n = a.size();
    ll lg = log2(n);
    for (int i = 0; i < n; i++)
    {
        _lu[i][0] = a[i];
    }
    
    for (int j = 1; j <= lg; j++)
    {
        for (int i = 0; i + (1 << j) - 1 < n; i++)
        {
            if (_isSum)
                _lu[i][j] = _lu[i][j - 1] + _lu[i + (1 << (j - 1))][j - 1];
            else
                _lu[i][j] = max(_lu[i][j - 1], _lu[i + (1 << (j - 1))][j - 1]);
        }
    }
}

ll query(ll l, ll r, bool _isSum = false)
{
    if(l > r)
        swap(l, r);
    ll ans;
    if (_isSum)
    {
        ans = 0;
        ll k = r - l + 1, j = log2(k);
        for (int i = 0; i <= j; i++)
            if (k & (1 << i))
            {
                ans += _lu[l][i];
                l += (1 << i);
            }
    }
    else
    {
        ll j = log2(r - l + 1);
        ans = max(_lu[l][j], _lu[r - (1 << j) + 1][j]);
    }

    return ans;
}

typedef vector<ll> vll;
typedef vector<double> vdd;
typedef pair<ll, ll> pll;

vll gr[N], child(N, 0), edge(N, 0);

vll parent, Rank;

ll Find(int i)
{
    if(parent[i] == i)
        return i;

    return parent[i] = Find(parent[i]);

}

void Union(ll i, ll j)
{
    i = Find(i);
    j = Find(j);

    if(Rank[i] > Rank[j])
    {
        Rank[i]++;
        parent[j] = i;
    }
    else
    {
        Rank[j]++;
        parent[i] = j;
    }
}

vector <bool> vis;
vll col;
map <ll, vll> mp;
int flag = 0;

void dfs(int node, int parent = -1, int c = 0)
{
    debug(node);
    bool ans = true;
    vis[node] = 1;
    col[node] = c;
    for(auto i: mp[node])
    {
        debug(i)
        if(vis[i] && col[i] == c)
        {
            flag = 1;
            break;
        }
        if(!vis[i])
            dfs(i, node, !c);
    }

}

bool isOverlap(ll &left, ll &right, ll l, ll r)
{
    if((left >= l && left <= r) || (right >= l && right <= r))
    {
        left = max(left, l);
        right = min(right, r);
        return true;
    }
    left = l;
    right = r;
    return false;
}
void solve()
{
    ll tt;
    cin >> tt;
    // tt = 1;
    for (ll pp = 0; pp < tt; pp++)
    {
        ll n;
        cin >> n;
        vll a(n);
        for (int i = 0; i < n; i++)
        {
            cin >> a[i];
        }

        sort(a.begin(), a.end());
        if(a[n - 1] % 10 == 5)
        {
            a[n - 1] += 5;
        }
        else if(a[n - 1] % 10 != 0)
        {
            while(true)
            {
                a[n - 1] += (a[n - 1] % 10);
                if(a[n - 1] % 10 == 8)
                    break;
            }
        }

        int flag = 0;
        ll cmp = a[n - 1] / 10;
        for (int i = 0; i < n - 1; i++)
        {
            if(a[i] != a[n - 1])
            {
                ll temp = a[i] / 10, rem = a[i] % 10, diff = cmp - temp;
                switch(rem)
                {
                    case 0: flag = 1;
                            break;
                    case 1: if(diff % 2)
                                flag = 1;
                            break;
                    case 2: if(diff % 2)
                                flag = 1;
                            break;
                    case 3: if(diff % 2 == 0)
                                flag = 1;
                            break;
                    case 4: if(diff % 2)
                                flag = 1;
                            break;
                    case 5: if(a[i] + 5 != a[n - 1])
                                flag = 1;
                            break;
                    case 6: if(diff % 2 == 0)
                                flag = 1;
                            break;
                    case 7: if(diff % 2 == 0)
                                flag = 1;
                            break;
                    case 8: if(diff % 2)
                                flag = 1;
                            break;
                    case 9: if(diff % 2 == 0)
                                flag = 1;
                            break;
                }
            }
            if(flag)
                break;
        }

        if(flag)
            cout << "NO\n";
        else
            cout << "YES\n";
        

        

           
    }
}

int main()
{

#ifndef ONLINE_JUDGE
    freopen("input", "r", stdin);
    freopen("output", "w", stdout);
    freopen("error", "w", stderr);
#endif

    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    solve();
    return 0;
}
?
Time: ? ms, memory: ? KB
Verdict: ?
Input
?
Participant's output
?
Jury's answer
?
Checker comment
?
Diagnostics
?
Click to see test details