Pagini recente » Cod sursa (job #299011) | Cod sursa (job #3173751) | Cod sursa (job #2575999) | Cod sursa (job #652921) | Cod sursa (job #578662)
Cod sursa(job #578662)
#include <cstdio>
#include <algorithm>
int n, a[9001];
int binSearch(int left, int right, int t2)
{
int mid = 0;
while (left <= right)
{
mid = ((left +right)>>1);
if (a[mid] == t2)
break;
else if (a[mid] < t2)
left = mid + 1;
else
right = mid - 1;
}
return mid;
}
int main()
{
unsigned int sol = 0;
FILE *f = fopen("medie.in", "r");
FILE *g = fopen("medie.out", "w");
fscanf(f,"%d\n", &n);
for (int i = 1 ;i <= n ; ++i)
fscanf(f, "%d\n", &a[i]);
std::sort(a + 1, a + n + 1);
for (int i = 2 ; i < n ; ++i)
{
for (int j = 1 ; j < i ; ++j)
{
int t2 = (i << 1) - j;
int k = binSearch(i + 1, n, t2);
if (a[k] == t2)
{
int count = 1, t = k - 1;
while (a[t] == t2)
{
count++;
t--;
}
t = k+1;
while(a[t] == t2)
{
count++;
t++;
}
sol += count;
}
}
}
fprintf(g, "%d\n", sol);
return 0;
}