Pagini recente » Solutii Autumn Warmup, Runda 3 | Cod sursa (job #1341056) | Cod sursa (job #1112849) | Cod sursa (job #2829079) | Cod sursa (job #1520237)
#include <iostream>
#include<fstream>
using namespace std;
void quick(int v[], int st, int dr)
{
int i=st, j=dr, m=(st+dr)/2, pivot=v[m];
while(i<=j)
{while(v[i]<pivot)
i++;
while(v[j]>pivot)
j--;
if(i<=j)
{int aux=v[i];
v[i]=v[j];
v[j]=aux;
i++;
j--;}
}
if(st<j)
quick(v,st,j);
if(i<dr)
quick(v,i,dr);
}
int main()
{
ifstream f("nrtri.in");
ofstream g("nrtri.out");
int v[100],i,j,k,N,ok,aux,nr=0;
f>>N;
for(i=1;i<=N;i++)
f>>v[i];
quick(v,1,N);
for(i=1;i<=N-2;i++)
{j=i+1;
while(j<=N-1)
{k=j+1;
while(v[i]+v[j]>=v[k])
k++;
for(int l=j+1;l<k;l++)
nr++;
j++;}
}
g<<nr;
return 0;
}