Cod sursa(job #852739)

Utilizator OpportunityVlad Negura Opportunity Data 11 ianuarie 2013 17:54:54
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <fstream>
using namespace std;

ifstream fi("nrtri.in");
ofstream fo("nrtri.out");

long rs,i,j,n,k,a[100000];

void read(){
	fi >> n;
	for (i=1; i<=n; i++) fi >> a[i];
}

void qsort(long l,long r){
	long i=l,j=r,aux,p=a[(l+r)/2];
	while (i<j){
		while (a[i]<p) i++;
		while (a[j]>p) j--;
		if (i<=j) aux=a[i],a[i]=a[j],a[j]=aux,i++,j--;
	}
	if (j>l) qsort(l,j);
	if (i<r) qsort(i,r);	
}

void solve(){
	for (i=1; i<n-1; i++)
		for (j=i+1; j<n; j++)
			for (k=j+1; k<=n; k++)
				if (a[i]+a[j]>=a[k]) rs++; else break;
}

int main(){
	
	read();
	qsort(1,n);
	solve();
	fo << rs;
	
	return 0;
}