Pagini recente » Cod sursa (job #2759947) | Cod sursa (job #104913) | Cod sursa (job #3151243) | Cod sursa (job #1606590) | Cod sursa (job #164519)
Cod sursa(job #164519)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
int N,
L[801];
bool ls(const int &a, const int &b) {
return a > b;
}
int main(int argc, char *argv[]) {
FILE *fi = fopen("nrtri.in", "r");
fscanf(fi, "%d", &N);
for (int i(0); i < N; ++i)
fscanf(fi, "%d", L + i);
fclose(fi);
sort(L, L + N, ls);
/*for (int i(0); i < N; ++i)
cout << L[i] << " ";
cout << endl;*/
int total(0);
for (int i(0); i < N; ++i)
for (int j = i + 1; j < N - 1; ++j) {
int p = j + 1;
int r = N - 1;
while (p < r) {
int q = (p + r) / 2;
if (L[i] > L[j] + L[q])
r = q;
else
p = q + 1;
}
//cout << i << " " << j << " " << p << endl;
total += p - j;
if (L[i] > L[j] + L[p])
--total;
//cout << total << endl;
}
ofstream fout("nrtri.out");
fout << total << endl;
fout.close();
return 0;
}