Cod sursa(job #240778)

Utilizator ssergiussSergiu-Ioan Ungur ssergiuss Data 8 ianuarie 2009 18:05:59
Problema Medie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include<algorithm>
using namespace std;
int n,a[9001];
/*int cautbin(int x,int y){
    int st=x+1,dr=y-1,m;
    while(st<=dr){
        m=(st+dr)/2;
        if(a[m]<=(a[x]+a[y])/2)
            st=m+1;
        else
            dr=m-1;}
    return m;}*/
int divide(int p,int q){
    int st=p,dr=q,x=a[p];
    while(st<dr){
        while(st<dr&&a[dr]>=x)
            --dr;
        a[st]=a[dr];
        while(st<dr&&a[st]<=x)
            ++st;
        a[dr]=a[st];
        a[st]=x;}
    return st;}
void qsort(int p,int q){
    int m;
    m=divide(p,q);
    if(m-1>p)
        qsort(p,m-1);
    if(m+1<q)
        qsort(m+1,q);}
void solve(){
    int i,j,l,nr,k=0;
    scanf("%d",&n);
    for(i=1; i<=n; ++i)
        scanf("%d",&a[i]);
    qsort(1,n);
    for(i=1; i<n-1; ++i)
        for(j=i+2; j<=n; ++j){
            for(l=i+1; l<j; ++l)
                if(a[i]+a[j]==2*a[l])
                    ++k;}
    printf("%d",k);}
int main(){
    freopen("medie.in","r",stdin);
    freopen("medie.out","w",stdout);
    solve();
    return 0;}