Cod sursa(job #1150933)
| Utilizator | Data | 23 martie 2014 18:37:36 | |
|---|---|---|---|
| Problema | Numarare triunghiuri | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.66 kb |
#include<fstream>
#include<algorithm>
using namespace std;
int x[803], i, j, n, p, p1, u, u1, ok, mij, sol, s, d;
int mod(int x){
return (x>0?x:-x);
}
ifstream in("nrtri.in");
ofstream out("nrtri.out");
int main(){
in>>n;
for(i=1; i<=n; i++)
in>>x[i];
sort(x+1, x+n+1);
for(i=1; i<=n-2; i++){
for(j=i+1; j<=n-1; j++){
p=j+1; u=n;
s=x[i]+x[j];
while(p<=u){
mij=p+(u-p)/2;
if(x[mij]<=s)
p=mij+1;
else
u=mij-1;
}
sol+=u-j;
}
}
out<<sol;
return 0;
}
