Pagini recente » Cod sursa (job #2640926) | Cod sursa (job #47877) | Cod sursa (job #636276) | Cod sursa (job #2983741) | Cod sursa (job #2979653)
#include <fstream>
using namespace std;
ifstream cin ("nrtri.in");
ofstream cout ("nrtri.out");
int main ()
{
int lungime , sir[800];
cin >> lungime;
for (int indice = 0 ; indice < lungime ; indice++)
cin >> sir[indice];
for (int indice_1 = 0 ; indice_1 < lungime - 1 ; indice_1++)
for (int indice_2 = indice_1 + 1 ; indice_2 < lungime ; indice_2++)
if (sir[indice_1] > sir[indice_2])
swap(sir[indice_1] , sir[indice_2]);
int modalitati = 0;
for (int indice_1 = 0 ; indice_1 < lungime - 2 ; indice_1++)
for (int indice_2 = indice_1 + 1 ; indice_2 < lungime - 1 ; indice_2++)
{
int stanga = indice_2 + 1 , dreapta = lungime , pozitie = indice_2;
while (stanga <= dreapta)
{
int mijloc = (stanga + dreapta) / 2;
if (sir[mijloc] > sir[indice_1] + sir[indice_2])
dreapta = mijloc - 1;
else
stanga = mijloc + 1 , pozitie = mijloc;
}
modalitati += pozitie - indice_2;
}
cout << modalitati;
cout.close(); cin.close();
return 0;
}