Pagini recente » Istoria paginii problema/subsecvente | Diferente pentru problema/cobai intre reviziile 2 si 10 | Diferente pentru utilizator/teco intre reviziile 5 si 6 | Cod sursa (job #2368861) | Cod sursa (job #1662509)
#include <fstream>
#include <algorithm>
#include <iostream>
using namespace std;
#define MAX 801
#define ll long long
void citire();
void afisare(ll);
ll rezolvare();
int sir[MAX],N;
int main()
{
citire();
afisare(rezolvare());
return 0;
}
void citire()
{
fstream f("nrtri.in",ios::in);
int x,i;
f>>N;
for(i=0;i<N;++i)f>>x, sir[i]=x;
};
void afisare(ll ans)
{
ofstream g("nrtri.out");
g<<ans;
}
ll rezolvare()
{
sort(sir,sir+N);
ll ans=0;
int i,j,first,second,t;
for(i=0;i<=N-3;++i)
{
for(j=i+1;j<=N-2;++j)
{
first=j+1;
second=N-1;
t=(first+second)/2;
while(first<=second)
{
t=(first+second)/2;
if(sir[i]+sir[j]<sir[t])second = t-1;
else first=t+1;
}
ans+=second-j;
}
}
return ans;
}