/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 528.0 KiB
#2 Accepted 257ms 532.0 KiB
#3 Accepted 257ms 548.0 KiB
#4 Accepted 262ms 548.0 KiB
#5 Accepted 258ms 560.0 KiB
#6 Accepted 258ms 540.0 KiB
#7 Accepted 59ms 548.0 KiB
#8 Accepted 59ms 552.0 KiB
#9 Accepted 87ms 552.0 KiB
#10 Accepted 61ms 532.0 KiB
#11 Accepted 60ms 552.0 KiB
#12 Accepted 32ms 1.227 MiB
#13 Accepted 34ms 1.27 MiB
#14 Accepted 98ms 1.301 MiB
#15 Accepted 97ms 1.289 MiB

Code

#include <iostream>
#include <vector>
#include <unordered_set>
using namespace std;

vector<int> generateBinaryOnes() {
    vector<int> ones;
    int limit = 2 * 1e9;
    int power = 1;
    while (true) {
        int val = (1 << power) - 1;
        if (val > limit) break;
        ones.push_back(val);
        power++;
    }
    return ones;
}

int findMaxProduct(const vector<int>& nums) {
    vector<int> ones = generateBinaryOnes();
    unordered_set<int> numSet(nums.begin(), nums.end());
    
    for (int num : nums) {
        for (int target : ones) {
            int diff = target - num;
            if (numSet.count(diff)) {
                return 1;
            }
        }
    }
    return 0;
}

int main() {
    int tc;
    cin>>tc;
while(tc--){
int n;
    cin >> n;
    vector<int> arr(n);
    for(int i=0; i<n; ++i){
        cin >> arr[i];
    }
    cout << findMaxProduct(arr) << endl;
}
}

Information

Submit By
Type
Submission
Problem
P1175 Maximum binary product of sum pairs
Contest
Lu IEEE testing round
Language
C++17 (G++ 13.2.0)
Submit At
2025-02-24 20:01:49
Judged At
2025-02-24 20:01:49
Judged By
Score
100
Total Time
262ms
Peak Memory
1.301 MiB