Cod sursa(job #1499385)

Utilizator radu_uniculeu sunt radu radu_unicul Data 10 octombrie 2015 15:53:13
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<stdio.h>
#include<algorithm>
using namespace std;
FILE *fin,*fout;
int n,number;
bool triangle(int a,int b,int c)
{
   return a+b>=c;
}
int main()
{
    fin=fopen("nrtri.in","r");
    fout=fopen("nrtri.out","w");
    fscanf(fin,"%d",&n);
    int v[n+1];
    for(int i=0;i<n;i++) fscanf(fin,"%d",&v[i]);
    sort(v,v+n);
    for(int i=0;i<n-1;i++)
        for(int j=i+1;j<n;j++)
            {
                int start=i,end=j,pas=1<<30;
                while(pas>0)
                {
                    pas/=2;
                    if(start+pas>=end) continue;
                    if(triangle(v[start],v[start+pas],v[end]))
                    {
                        number+=pas;
                        start+=pas;
                    }
                }
            }
     fprintf(fout,"%d",number);
}