Cod sursa(job #1518920)
| Utilizator | Data | 6 noiembrie 2015 16:05:17 | |
|---|---|---|---|
| Problema | Numarare triunghiuri | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 1.13 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("nrtri.in");
ofstream g("nrtri.out");
int a[801],i,j,z,n,k,kk,ok;
void quickSort(int a[], int left, int right)
{
int i = left, j = right;
int tmp;
int pivot = a[(left + right) / 2];
while (i <= j) {
while (a[i] < pivot)
i++;
while (a[j] > pivot)
j--;
if (i <= j) {
tmp = a[i];
a[i] = a[j];
a[j] = tmp;
i++;
j--;
}
};
if (left < j)
quickSort(a, left, j);
if (i < right)
quickSort(a, i, right);
}
int main()
{
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
quickSort(a,1,n);
for(i=1;i<n;i++)
for(j=i+1;j<n;j++)
{
//ok=0;
for(z=j+1;z<=n;z++)
{
if(a[z]>a[i]+a[j])
{
//ok=1
kk++;
}
}
}
g<<kk;
return 0;
}
