Cod sursa(job #2910874)
Utilizator | Despa Fabian Stefan MrPuzzle | Data | 25 iunie 2022 14:58:02 |
---|---|---|---|
Problema | Numarare triunghiuri | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | 3_iulie | Marime | 0.74 kb |
#include <fstream>
#include <iostream>
#include <algorithm>
using namespace std;
//ifstream f("in.in");
//ofstream g("out.out");
ifstream f("nrtri.in");
ofstream g("nrtri.out");
int v[805],n,sol=0,st,dr,mij;
int main(){
f>>n;
for(int i=1;i<=n;i++){
f>>v[i];
}
sort(v+1,v+n+1);
for(int i=1;i<n;i++){
for(int 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]){
dr = mij-1;
}else{
st = mij+1;
}
}
sol+=(dr-j);
}
}
g<<sol;
f.close();
g.close();
return 0;
}