Cod sursa(job #984429)
| Utilizator | Data | 14 august 2013 15:06:05 | |
|---|---|---|---|
| Problema | Numarare triunghiuri | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.75 kb |
#include<cstdio>
#include<algorithm>
using namespace std;
int n,i,j,nr,v[801],p,u,mid,nrt;
FILE *f,*g;
int main(){
f=fopen("nrtri.in","r");
g=fopen("nrtri.out","w");
fscanf(f,"%d",&n);
for(i=1;i<=n;i++){
fscanf(f,"%d",&v[i]);
}
sort(v+1,v+1+n);
nrt=0;
for(i=1;i<=n;i++){
for(j=i+1;j<=n;j++){
nr=v[i]+v[j];
p=j;
u=n;
while(p<=u){
mid=(p+u)/2;
if(nr>=v[mid])
p=mid+1;
else{
u=mid-1;
break;
}
}
nrt+=u-j;
}
}
fprintf(g,"%d",nrt);
fclose(f);
fclose(g);
return 0;
}
