#include <bits/stdc++.h>
#include <vector>
#include <unordered_map>
using namespace std;
int findMinimumPrice(vector<int> &price) {
int n = price.size();
int minPrice = INT_MAX;
bool found = false;
int left = 0, right = 0;
unordered_map<int, int> freq;
int currPrice = 0;
while (right < n) {
currPrice += price[right];
freq[price[right]]++;
// If we find a product with matching price, update the minimum price
while (freq[price[right]] > 1) {
found = true;
minPrice = min(minPrice, currPrice);
freq[price[left]]--;
currPrice -= price[left];
left++;
}
right++;
}
return found ? minPrice : -1;
}
int main() {
vector<int> price = {1, 2, 1, 2};
cout << findMinimumPrice(price) << endl; // Expected output: 4
return 0;
}