Pagini recente » Cod sursa (job #323562) | Cod sursa (job #615473) | Cod sursa (job #1300002) | Cod sursa (job #601691) | Cod sursa (job #2702257)
#include <fstream>
#define NMAX 2000
#define LMAX 30000
using namespace std;
unsigned short lungimi[LMAX+1], bete[NMAX+1];
int main()
{
ifstream fin("nrtri.in");
ofstream fout("nrtri.out");
int n, k, nrtri, j;
fin >> n;
for (int i = 0; i < n; i++)
{
fin >> j;
lungimi[j]++;
}
n = 0;
for (int i = 1; i <= LMAX; i++)
{
for (int j = lungimi[i]; j > 0; j--)
{
bete[n++] = i;
}
}
nrtri = 0;
for (int i = 0; i < n - 2; i++)
{
k = i + 2;
for (int j = i + 1; j < n - 1; j++)
{
while (k < n && bete[i] + bete[j] > bete[k])
{
k++;
}
nrtri += k - j - 1;
}
}
fout << nrtri;
return 0;
}