Cod sursa(job #802309)

Utilizator Detrol2kGuianu Leon Detrol2k Data 26 octombrie 2012 13:47:59
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>
using namespace std;

int n, aux, v[1000];

void quicksort(int left, int right)
{
	int i = left;
	int j = right;
	int mid = (i+j)/2;
	
	while(i<=j)
	{
		while(v[i] < v[mid])
			i++;
		while(v[j] > v[mid])
			j--;
		if(i<=j)
		{
			aux = v[i];
			v[i] = v[j]; 
			v[j] = aux;
			i++;
			j--;
		}	
	}
	
	if(left < j)
		quicksort(left, j);
	if(right > i)
		quicksort(i, right);
}

int main()
{
	ifstream f("nrtri.in");
	ofstream g("nrtri.out");
	
	int i, j, k, nr=0;
	
	//Read
	f>>n;
	for(i=1; i<=n; i++)
		f>>v[i];
		
	//Compute
	quicksort(1,n);
	for (i=1;i<n;i++)
		for (j=i+1;j<n;j++)
			for (k=j+1;k<=n;k++)
				if (v[i]+v[j]>=v[k])
					nr++;
				else
					break;
	
	//Print
	g<<nr;
}