Cod sursa(job #1398270)

Utilizator teoceltareconstantin teodor teoceltare Data 24 martie 2015 08:45:15
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include<iostream>
#include<fstream>
using namespace std;
ifstream fin("nrtri.in");
ofstream fout("nrtri.out");
int v[810],n,x;
long long s;
void citire()
{
    fin>>n;
    for(int a1=1;a1<=n;a1++)
    {
        fin>>v[a1];
    }
}
int poz(int p,int u)

{int piv,aux,k;

 piv=v[p];

 while (p<u)

    { if (v[p]>v[u]){aux=v[p];
                    v[p]=v[u];
                    v[u]=aux;}
       if (v[p]==piv)
              u--;
        else p++;
    }
 k=p;
 return k;
}
void quick(int p,int u)
{int k;
 if (p<u) {k=poz(p,u);
                quick(p,k-1);
                quick(k+1,u);}
}
int main()
{
    citire();
    quick(1,n);
    for(int a1=1;a1<=n-2;a1++)
        for(int a2=a1+1;a2<=n-1;a2++)
            for(int a3=a2+1;a3<=n;a3++)
            {
                if(v[a3]>v[a1]+v[a2])
                {
                    a3--;
                    x=a3-a2+1;
                    s+=x;
                    break;
                }
            }
    fout<<s;
}