var_b vs var_c
FLAGGEDProblem: two-sum
A→B48%B→A37%Shared fingerprints20
49tokens in the longest matched region
var_b
#include <bits/stdc++.h>
using namespace std;
// Solution to the two-sum problem
// Approach: single pass with a hash map
// Time complexity: O(n) average
int main()
{
// fast input
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int n; // number of elements
long long t; // the target sum
cin >> n >> t;
// maps value -> 1-based index where we saw it
unordered_map<long long, int> seen;
seen.reserve(n * 2); // avoid rehashing
for (int idx = 1; idx <= n; idx++)
{
long long x;
cin >> x; // read next number
// did we already see the complement?
auto it = seen.find(t - x);
if (it != seen.end())
{
// yes -> print the pair and stop
cout << it->second << ' ' << idx << '\n';
return 0;
}
seen[x] = idx; // remember this value
}
return 0; // per the guarantee we never get here
}
var_c
#include <bits/stdc++.h>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int n; long long t;
cin >> n >> t;
unordered_map<long long, int> seen;
seen.reserve(2 * n);
int idx = 1;
while (idx <= n) {
long long x;
cin >> x;
long long need = t - x;
auto it = seen.find(need);
if (seen.end() != it) {
cout << it->second << ' ' << idx << '\n';
return 0;
}
seen[x] = idx;
idx = idx + 1;
}
return 0;
}