Cod sursa(job #1875413)
| Utilizator | Data | 11 februarie 2017 01:56:03 | |
|---|---|---|---|
| Problema | Numarare triunghiuri | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.83 kb |
#include<fstream>
#include<algorithm>
using namespace std;
ifstream in("nrtri.in");
ofstream out("nrtri.out");
int n,i,j,s,v[10001],st,dr,mid,d;
int main(){
in>>n;
for( i = 1; i <= n; i ++ ){
in >> v[ i ];
}
sort(v+1,v+n+1);
for( i = 1; i <= n-2; i ++ ){
for(j = i + 1; j <= n-1; j ++ ){
s=v[i]+v[j];
st=j;
dr=n;
while(st<=dr){
mid=(st+dr)/2;
if(v[mid]<=s){
st=mid+1;
}
if(v[mid]>s){
dr=mid-1;
}
}
d=d+st-j-1;
}
}
out<<d;
}
