Cod sursa(job #2347010)

Utilizator Mihai.MocanuMihai mmm Mihai.Mocanu Data 18 februarie 2019 12:18:48
Problema Numarare triunghiuri Scor 100
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <stdio.h>
#include <stdlib.h>

int v[800];

int main(){
  int i,j,n,c,aux,pas,r;
  FILE *fin,*fout;
  fin=fopen("nrtri.in","r");
  fout=fopen("nrtri.out","w");
  fscanf(fin,"%d",&n);

  for(i=0;i<n;i++){
    fscanf(fin,"%d",&v[i]);
  }

  for(i=0;i<n;i++){
    for(j=0;j<n-i-1;j++){
      if(v[j]>v[j+1]){
        aux=v[j];
        v[j]=v[j+1];
        v[j+1]=aux;
      }
    }
  }

  c=0;
  for(i=0;i<n;i++){
    for(j=i+1;j<n;j++){
      pas=1<<16;
      r=0;
      while(pas!=0){
        if(r+pas<n && v[r+pas]<=v[j]+v[i]){
          r+=pas;
        }
        pas/=2;
      }
      c+=r-j;
    }
  }

  fprintf(fout,"%d",c);


  fclose(fin);
  fclose(fout);
  return 0;
}