702B - Powers of Two - CodeForces Solution


brute force data structures implementation math *1500

Please click on ads to support us..

Python Code:

from typing import Dict, List


def main():
    n: int = 0
    x: int = 0
    ans: int = 0
    m = dict()

    n = int(input().strip())

    arr: List[str] = input().strip().split(' ')
    arr: List[int] = [*map(int, arr)]

    for i in range(0, n):
        x = arr[i]

        for j in range(0, 31):
                                    key: int = pow(2, j) - x
            if key in m:
                ans += m[key]
            else:
                ans += 0

        if x not in m:
            m[x] = 0
        m[x] += 1

    print(ans)


main()

C++ Code:

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

int main()
{
	int n; scanf("%d", &n);
	vector<int> a(n + 1);
	for (int i = 1; i <= n; i++)
		scanf("%d", &a[i]);
	
	ll ans = 0;
	for (int j = 1; j <= 30; j++)
	{
		map<int, int> mp;
		for (int i = 1; i <= n; i++)
		{
			int val = (1 << j);
			if (val - a[i] != 0 && mp.count(val - a[i])) ans += mp[val - a[i]];
			mp[a[i]]++;
		}
	}
	
	printf("%lld\n", ans);
	
	return 0;
}

/*
1, 2, 3, 4, 5, 6


*/


Comments

Submit
0 Comments
More Questions

1302. Deepest Leaves Sum
1209. Remove All Adjacent Duplicates in String II
994. Rotting Oranges
983. Minimum Cost For Tickets
973. K Closest Points to Origin
969. Pancake Sorting
967. Numbers With Same Consecutive Differences
957. Prison Cells After N Days
946. Validate Stack Sequences
921. Minimum Add to Make Parentheses Valid
881. Boats to Save People
497. Random Point in Non-overlapping Rectangles
528. Random Pick with Weight
470. Implement Rand10() Using Rand7()
866. Prime Palindrome
1516A - Tit for Tat
622. Design Circular Queue
814. Binary Tree Pruning
791. Custom Sort String
787. Cheapest Flights Within K Stops
779. K-th Symbol in Grammar
701. Insert into a Binary Search Tree
429. N-ary Tree Level Order Traversal
739. Daily Temperatures
647. Palindromic Substrings
583. Delete Operation for Two Strings
518. Coin Change 2
516. Longest Palindromic Subsequence
468. Validate IP Address
450. Delete Node in a BST