Cod sursa(job #802312)

Utilizator Detrol2kGuianu Leon Detrol2k Data 26 octombrie 2012 13:57:29
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 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");
	
	long int i, j, k, mij, 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++)
			if (v[i]>v[j])
			{
				mij=v[i];
				v[i]=v[j];
				v[j]=mij;
			}
	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;
}