Cod sursa(job #1122361)

Utilizator mikeKiLL3rLupea Mihai Ionut mikeKiLL3r Data 25 februarie 2014 17:44:56
Problema Medie Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <cstdio>
using namespace std;
int n,i,poz,st[100],adun1,bineadunat;
int count = 0;
int v[1000];
int ismedie(int n1, int n2, int n3)
{
    if (n1 == 0 || n2 == 0|| n3 == 0) return 0;
    if((n2+n3) % 2 )return 0;
    if (n1 != (n2+n3)/2) return 0;
    return 1;
}
int main()
{
    freopen("medie.in", "r", stdin);
    freopen("medie.out", "w", stdout);
    scanf("%i", &n);
    for(i = 1;i<=n;i++)
    {
        scanf("%i", &v[i]);
    }
    poz = 1;
    st[poz] = 0;
    while(poz >= 1)
    {
        do
        {
            st[poz] += adun1 = bineadunat = (st[poz] < n);
            for(i=1;i<poz && bineadunat;i++)
            {
                if(st[i] == st[poz]) bineadunat = 0;
            }
        }while(adun1 && !bineadunat);

        if(adun1)
        {
            if(poz == 3)
            {
                if(st[2] < st[3])
                if(ismedie(v[st[1]], v[st[2]], v[st[3]]))
                {
                    count++;
                }
            }
            else st[++poz] = 0;
        }
        else poz--;
    }
    printf("%i\n", count);
    return 0;
}