Cod sursa(job #1077543)

Utilizator andreeadeacAndreea Ioana Deac andreeadeac Data 11 ianuarie 2014 14:17:34
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>
#include<algorithm>
using namespace std;
ifstream f("nrtri.in");
ofstream g("nrtri.out");
int n,v[801];
int cb(int x){
    int i=0,pas=1<<16;
    while(pas!=0){
        if(i+pas<=n && v[i+pas]<=x)
            i+=pas;
        pas/=2;
    }
    return i;
}
int main(){
    int i,nr=0,j,k,s;
    f>>n;
    for(i=1;i<=n;i++)
        f>>v[i];
    sort(v,v+n+1);
    /*for(i=1;i<=n;i++)
        g<<v[i]<<" ";
    g<<"\n";
    */
    for(i=1;i<n-1;i++)
        for(j=i+1;j<n;j++){
            s=v[i]+v[j];
            k=cb(s);
            while(v[k]+v[i]>=v[j] && v[k]+v[j]>=v[i] && k!=i && k!=j){
                g<<v[i]<<" "<<v[j]<<" "<<v[k]<<"\n";
                k--;
                nr++;
            }
        }
    g<<nr;
    return 0;
}