Cod sursa(job #2509185)

Utilizator euyoTukanul euyo Data 13 decembrie 2019 22:17:03
Problema Numarare triunghiuri Scor 100
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <stdio.h>

int side[800];

int main() {
  FILE *fin = fopen( "nrtri.in", "r" );
  FILE *fout = fopen( "nrtri.out", "w" );
  int n, i, j, k, u, p, max, modes;

  fscanf( fin, "%d", &n );
  for ( i = 0; i < n; ++i ) {
    fscanf( fin, "%d", &side[i] );
  }
  for ( u = n - 1; u > 0; --u ) {
    max = side[0];
    p = 0;
    for ( i = 1; i <= u; ++i ) {
      if ( side[i] > max ) {
        max = side[i];
        p = i;
      }
    }
    side[p] = side[u];
    side[u] = max;
  }
  modes = 0;
  for ( i = 0; i < n - 2; ++i ) {
    k = i + 2;
    for ( j = i + 1; j < n - 1; ++j ) {
      while ( k < n && side[i] + side[j] >= side[k] ) {
        ++k;
      }
      modes += k - (j + 1);
    }
  }
  fprintf( fout, "%d", modes );
  fclose( fin );
  fclose( fout );
  return 0;
}