Pagini recente » Cod sursa (job #199480) | Cod sursa (job #1418151) | Cod sursa (job #2491622) | Cod sursa (job #134835) | Cod sursa (job #3324360)
#include <fstream>
#include <algorithm> // pentru sort
using namespace std;
int v[100001];
int main() {
ifstream cin("bete2.in");
ofstream cout("bete2.out");
int n, c = 0;
cin >> n;
for (int i = 1; i <= n; i++) cin >> v[i];
// Sortarea întregului vector de la index 1 la n
sort(v + 1, v + n + 1); // sortare rapidă O(n log n)
// Verificare triplete cu suma (două pointere)
for (int k = 3; k <= n; k++) {
int i = 1, j = k - 1;
while (i < j) {
int s = v[i] + v[j];
if (s == v[k]) {
c++;
i++;
j--;
} else if (s < v[k]) {
i++;
} else {
j--;
}
}
}
cout << c;
return 0;
}