Pagini recente » Cod sursa (job #736082) | Diferente pentru implica-te/extinde-arhiva/autor-necunoscut intre reviziile 9 si 11 | Istoria paginii runda/usu6 | Cod sursa (job #2017497) | Cod sursa (job #355863)
Cod sursa(job #355863)
#include<fstream.h>
ifstream f("nrtri.in");
ofstream g("nrtri.out");
int n,i,t,v[801],j,nr,x,y,p,u,m;
int main(){
f>>n;
for(i=1;i<=n;i++){f>>v[i];nr=i;
while(v[nr]<v[nr-1]&&nr>0){
t=v[nr];
v[nr]=v[nr-1];
v[nr-1]=t; nr--;}}
nr=0;
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++){
x=v[i];y=v[j];
p=j+1;u=n;
while(p<=u){
m=(p+u)/2;
if(x+y<v[m])
u=m-1;
else if(x+y>v[m])
p=m+1;
else break;}
if(p<=u){
while(v[m]==v[m+1]&&m<n)
m++;
nr=nr+m-j;}
else if(p-j>1)nr=nr+p-1-j;
}
g<<nr;
return 0;
}