Pagini recente » Cod sursa (job #407216) | Cod sursa (job #1381968) | Cod sursa (job #217485) | Cod sursa (job #811886) | Cod sursa (job #3257319)
#include <fstream>
#include <vector>
using namespace std;
ifstream f("nrtri.in");
ofstream g("nrtri.out");
int v[801];
int binarySearch(int value, int n) {
int left = 1;
int right = n;
while (left < right) {
int middle = (left + right) / 2;
if (v[middle + 1] <= value) {
left = middle + 1;
} else {
right = middle;
}
}
return left;
}
int main() {
int n, cont=0;
f>>n;
for(int i = 1; i<=n; i++){
f>>v[i];
}
for(int i = 1; i<n; i++){
for(int j = i+1; j<=n; j++){
if(v[i]>v[j]){
swap(v[i], v[j]);
}
}
}
for(int i = 1; i<n; i++){
for(int j = i+1; j<=n; j++){
int value = v[i]+v[j];
cont += binarySearch(value, n)-j;
}
}
g<<cont;
return 0;
}