Cod sursa(job #2083912)

Utilizator mbanutaMihai Mihai mbanuta Data 8 decembrie 2017 12:15:45
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <iostream>
#include<cstdio>
#include <algorithm>

int v[1000];
const int L=10;
using namespace std;
int main(){
    FILE*fin,*fout;
    fin = fopen( "nrtri.in", "r" );
    fout = fopen( "nrtri.out", "w" );
    int n,i,j,r,c=0,pas;
    fscanf( fin, "%d", &n );
    for( i = 0; i < n; i++ )
        fscanf( fin, "%d", &v[i] );
    sort( v, v + n );
    for( i = 0; i < n; i++ ){
        for( j = i+1; j < n; j++){
            r = 0;
            pas = 1 << L;
            while(pas != 0){
                if( r + pas < n && v[r+pas] <= v[i] + v[j] )
                    r = r + pas;
                pas = pas / 2;
            }
            c=c+r-j;
        }
    }
    fprintf( fout, "%d", c );
    fclose( fin );
    fclose( fout );
    return 0;
}