Cod sursa(job #1521519)
| Utilizator | Data | 10 noiembrie 2015 16:37:33 | |
|---|---|---|---|
| Problema | Numarare triunghiuri | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.52 kb |
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream f("nrtri.in");
ofstream g("nrtri.out");
bool verific(int a,int b,int c){
if((a+b>=c)&&(a+c>=b)&&(b+c>=a))
return true;
return false;
}
int main()
{int n,x;;
f>>n;
vector<int> v;
for(int i=1;i<=n;++i){
f>>x;
v.push_back(x);
}
sort(v.begin(),v.end());
int nr=0;
for(int i=0;i<n-2;++i)
for(int j=i+1;j<n-1;++j){
int k=j+1;
while(verific(v[i],v[j],v[k])&&k<n)
++k;
nr+=k-j-1;
}
g<<nr;
return 0;
}
