Cod sursa(job #2429728)

Utilizator rd211Dinucu David rd211 Data 10 iunie 2019 22:50:00
Problema Numarare triunghiuri Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <iostream>
#include <fstream>
using namespace std;
int n,st,dr,sol,m;
unsigned short A[801];
ifstream fin("nrtri.in");
ofstream fout("nrtri.out");
void qs(int st,int dr)
{
    if(st<dr)
    {
        int median = (st+dr)/2;
        swap(A[st],A[median]);
        int i = st,j = dr,d =0;
        while(i<j)
        {
            if(A[i]>A[j])
            {
                swap(A[i],A[j]);
                d = 1-d;
            }
            i+=d;
            j-= 1-d;
        }
        qs(st,i-1);
        qs(i+1,dr);
    }
}

int main()
{
    fin>>n;
    for(int i = 0;i<n;i++)
        fin>>A[i];
    for(int i = 0;i<n;i++)
    {
        for(int j = i+1;j<=n;j++)
        {
             st = j+1;
             dr = n;
             sol = -1;
             while(st<dr)
             {
                m = (st+dr)/2;
                if(A[m]<=A[i]+A[j])
                {
                    st = m+1;
                    sol = m;
                }
                else
                {
                    dr = m-1;
                }
             }
             if(sol!=-1) t++;
        }
    }
    return 0;
}