Cod sursa(job #1448162)
Utilizator | Pascal Ioana-Cristina IoanaaChriistinaa | Data | 6 iunie 2015 13:20:50 |
---|---|---|---|
Problema | Numarare triunghiuri | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.67 kb |
#include <fstream>
#include <algorithm>
using namespace std;
int n, i, v[805], j, st, dr, mij, nrtri;
ifstream in("nrtri.in");
ofstream out("nrtri.out");
int main(){
in>>n;
for(i=1;i<=n;i++)
{
in>>v[i];
}
sort(v+1, v+n+1);
for(i=1;i<n-1;i++){
for(j=i+1;j<n;j++){
st = j+1;
dr = n;
while(st <= dr){
mij = (st+dr)/2;
if(v[mij] <= v[i]+v[j]){
st = mij+1;
}else{
dr = mij-1;
}
}
nrtri += dr-j;
}
}
out<<nrtri;
out.close();
return 0 ;
}