1692F - 3SUM - CodeForces Solution


brute force math *1300

Please click on ads to support us..

Python Code:


def solve():
    n = int(input())
    a = list(map(int, input().split()))
    b = [0] * 10
    for i in range(n):
        b[a[i] % 10] += 1
    ans = 'no'
    for i in range(10):
        for j in range(10):
            for k in range(10):
                if (i + j + k) % 10 != 3:
                    continue
                b[i] -= 1
                b[j] -= 1
                b[k] -= 1
                if b[i] >= 0 and b[j] >= 0 and b[k] >= 0:
                    ans = 'yes'
                b[i] += 1
                b[j] += 1
                b[k] += 1
    print(ans)





def main():
    t = int(input())
    for _ in range(t):
        solve()


main()

C++ Code:

#include <bits/stdc++.h>
using namespace std;

void solve(vector<int> v)
{
    for (int i = 0; i < v.size() - 2; i++)
        {

            for (int j = i + 1; j < v.size() - 1; j++)
            {

                for (int k = j + 1; k < v.size(); k++)
                {

                    if ((v[i] + v[j] + v[k]) % 10 == 3)
                    {
                        cout << "YES" << endl;

                        return;
                    }
                }
            }
        }

        cout << "NO" << endl;
}
int main()
{
    int t;
    cin >> t;
    while (t--)
    {
        int n;
        cin >> n;
        map<int, int> mp;
        for (int i = 0; i < n; i++)
        {
            long long int data;
            cin >> data;
            int r = data % 10;
            mp[r]++;
        }
        map<int, int>::iterator it = mp.begin();

        // Iterate through the map and print the elements
        vector<int> v;
        while (it != mp.end())
        {

            if (it->second >= 3)
            {
                for (int i = 0; i < 3; i++)
                {
                    v.push_back(it->first);
                }
            }
            else if (it->second <= 2)
            {
                for (int i = 0; i < it->second; i++)
                {
                    v.push_back(it->first);
                }
            }

            ++it;
        }

        solve(v);
    }
    return 0;
}


Comments

Submit
0 Comments
More Questions

580A- Kefa and First Steps
1472B- Fair Division
996A - Hit the Lottery
MSNSADM1 Football
MATCHES Playing with Matches
HRDSEQ Hard Sequence
DRCHEF Doctor Chef
559. Maximum Depth of N-ary Tree
821. Shortest Distance to a Character
1441. Build an Array With Stack Operations
1356. Sort Integers by The Number of 1 Bits
922. Sort Array By Parity II
344. Reverse String
1047. Remove All Adjacent Duplicates In String
977. Squares of a Sorted Array
852. Peak Index in a Mountain Array
461. Hamming Distance
1748. Sum of Unique Elements
897. Increasing Order Search Tree
905. Sort Array By Parity
1351. Count Negative Numbers in a Sorted Matrix
617. Merge Two Binary Trees
1450. Number of Students Doing Homework at a Given Time
700. Search in a Binary Search Tree
590. N-ary Tree Postorder Traversal
589. N-ary Tree Preorder Traversal
1299. Replace Elements with Greatest Element on Right Side
1768. Merge Strings Alternately
561. Array Partition I
1374. Generate a String With Characters That Have Odd Counts