Pagini recente » Cod sursa (job #508150) | Cod sursa (job #2366144) | Cod sursa (job #3197127) | Cod sursa (job #662784) | Cod sursa (job #2430119)
#include <iostream>
#include <fstream>
#include <algorithm>
#define MAX 1000001
using namespace std;
ifstream in("nrtri.in");
ofstream out("nrtri.out");
int a[MAX], n, nr = 0;
bool ok(int a, int b, int c) {
if (a + b >= c && a + c >= b && c + b >= a)return true;
else return false;
}
int main() {
in >> n;
for (int i = 0; i < n; i++) {
in >> a[i];
}
sort(a, a + n);
for (int i = 0; i < n; i++) {
for (int j = i; j < n; j++) {
if (i != j) {
int left = 0, right = n;
while (left <= right) {
int mid = (left + right) / 2;
if (ok(a[mid], a[i], a[j]) == true && a[i] != a[mid] && a[j] != a[mid]) {
nr++;
break;
}
int p = (a[i] + a[j] + a[mid]) / 3;
if (a[mid] < p) left = mid + 1;
else right = mid - 1;
}
}
}
}
out << nr - 1;
}