Cod sursa(job #2075649)
Utilizator | Vlad Haivas vladth11 | Data | 25 noiembrie 2017 16:26:57 |
---|---|---|---|
Problema | Numarare triunghiuri | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.56 kb |
#include <fstream>
#include <algorithm>
using namespace std;
const int N = 801;
ifstream cin("nrtri.in");
ofstream cout("nrtri.out");
int v[N];
const int L = 9;
int main()
{
int n,i,j,pas,max = 0,r,s=0,k;
cin >> n;
k = 0;
pas = 1 << L;
for(i=1;i<=n;i++){
cin >> v[i];
}
sort(v,v+n);
for(i=1;i<=n-2;i++){
for(j=i+1;j <=n-1;j++){
k = j;
while(pas!=0){
if(k+pas<=n && v[k] <= v[i] + v[j])
k+=pas;
pas /= 2;
}
s += k -j;
}
}
cout << s;
return 0;
}