Cod sursa(job #1233902)

Utilizator ErichaTuchilaEricha Tuchila ErichaTuchila Data 26 septembrie 2014 12:17:20
Problema Numarare triunghiuri Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <stdio.h>
#include <stdlib.h>

int v[801];

int main()
{
    FILE *fin, *fout;
    fin=fopen("nrtri.in", "r");
    fout=fopen("nrtri.out", "w");
    int n, i, j, swap, c, k, tri;
    fscanf(fin, "%d", &n);
    c=0;
    while(c<n){
        fscanf(fin, "%d", &v[c]);
        c++;
    }
    swap=0;
    for(i=0; i<=n-2; i++){
        for(j=i+1; j<=n-1; j++){
            if(v[i]>v[j]){
                swap=v[i];
                v[i]=v[j];
                v[j]=swap;
            }
        }
    }
    k=0;
    tri=0;
    for(i=0; i<n; i++){
        k=i+2;
        for(j=i+1; j<n; j++){
            while(k<=j){
                k++;
            }
            while(k<n && v[i]+v[j]>=v[k]){
                k++;
            }
            if(k>j){
                tri += k-j-1;
            }
        }
    }
    fprintf(fout, "%d", tri);
    fclose(fin);
    fclose(fout);
    return 0;
}