Cod sursa(job #876457)

Utilizator gerd13David Gergely gerd13 Data 11 februarie 2013 20:45:12
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
using namespace std;
 
ifstream fin("nrtri.in");
ofstream fout("nrtri.out");
 
long rs,i,j,n,k,a[100000];
 
void read(){
    fin >> n;
    for (i=1; i<=n; i++) fin>> 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();
    fout << rs;
     
    return 0;
}