Cod sursa(job #1133789)

Utilizator TudorMTudor Moldovanu TudorM Data 5 martie 2014 17:02:11
Problema Medie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include<cstdio>
using namespace std;
FILE *f=fopen("medie.in","r");
FILE *g=fopen("medie.out","w");
int n, nr, v[9001], maxi, mini=100000,fr[10000];
void citire()
{
    int i,j,k,mij,p,u, nr1;
    float m;
    fscanf(f,"%d",&n);
    for(i=1;i<=n;++i)
    {
        fscanf(f,"%d",&v[i]);
        ++fr[v[i]];
        if(v[i]>maxi)maxi=v[i];
        if(v[i]<mini)mini=v[i];
    }
    for(i=mini;i<=maxi;i++)if(fr[i]>2)nr+=(((fr[i]-2)*(fr[i]-1)/2)*fr[i]);
    for(i=1;i<=n;++i)
    {
        p=v[i];
        u=v[i];
        while(p>=mini&&u<=maxi)
        {

            if(fr[p]&&fr[u]&&p!=u)
            {
                nr+=fr[p]*fr[u];
            }
            /*else if(u==p&&fr[p]>2)
            {
                nr+=(((fr[p]-2)*(fr[p]-1)/2)*fr[p]);
            }*/
            --p;
            ++u;
        }
    }
    fprintf(g,"%d",nr);
}
int main()
{
    citire();
    fclose(f);
    fclose(g);
    return 0;
}