Pagini recente » Cod sursa (job #554383) | Cod sursa (job #2681166) | Cod sursa (job #2671553) | Cod sursa (job #1291094) | Cod sursa (job #1733906)
#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,c;
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;
}