Cod sursa(job #266451)

Utilizator ConsstantinTabacu Raul Consstantin Data 25 februarie 2009 16:39:40
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<stdio.h>
#include<algorithm>
using namespace std;
int v[811],x[30011],i,j,k,l,m,n,p,q,a,b,sol;

int main(){

FILE *f=fopen("nrtri.in","r");
fscanf(f,"%d",&n);

for(i=1;i<=n;i++)
        {fscanf(f,"%d",&v[i]);
        x[v[i]]++;
        if(v[i]>m)m=v[i];
        }
fclose(f);

for(i=1;i<=m;i++)
        x[i]+=x[i-1];

sort(v+1,v+1+n);

for(i=1;i<n;i++)
  for(j = i+1; j <= n;j++)
        {a=v[i]+v[j];
        if(a>m)a=n;
        else
        a=x[a];
        b=v[j]-v[i];
        if(b<=v[j])b=j;
        else b=x[j];
        if(b<=a)
        sol+=a-b;
        }

FILE *g=fopen("nrtri.out","w");
fprintf(g,"%d",sol);
fclose(g);

return 0;}