Pagini recente » Cod sursa (job #1452266) | Cod sursa (job #2393625) | Cod sursa (job #2897910) | Cod sursa (job #2248967) | Cod sursa (job #1733907)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("nrtri.in");
ofstream g("nrtri.out");
int n,a,b,c,i,j,st,dr,m,sol,v[1000],x;
int main()
{
f>>n;
sol=0;
for(i=1;i<=n;i++)
{
f>>v[i];
}
for(a=1;a<=n-2;a++)
for(b=a+1;b<n;b++)
{
x=a+b;
if(v[b+1]<=x) c=b+1;
else
{
st=b+1; dr=n;
while(st<=dr)
{
m=st+(dr-st)/2;
if(v[m]<=x && v[m+1]>x) st=dr+1, c=m;
else if(v[m]<=x) st=m+1;
else if(v[m]>x) dr=m-1;
}
}
sol+=(c-b);
}
g<<sol<<'\n';
return 0;
}