Monday, 1 August 2016

SPOJ ABCDEF - ABCDEF

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
vector<ll>v1;
vector<ll>v2;
vector<ll>v;
int main()
{
    ll i,j,k,l,m,n;
    while(cin>>n)
    {
        for(i=0;i<n;i++)
        {
            cin>>m;
            v.push_back(m);
        }
        for(i=0;i<n;i++)
        {
            for(j=0;j<n;j++)
            {
                for(k=0;k<n;k++)
                {
                    ll sum=(v[i]*v[j])+v[k];
                    v1.push_back(sum);
                }
            }
        }
        for(i=0;i<n;i++)
        {
            for(j=0;j<n;j++)
            {
                for(k=0;k<n;k++)
                {
                    if(v[k]!=0)
                    {
                        ll sum=(v[i]+v[j])*v[k];
                        v2.push_back(sum);
                    }
                }
            }
        }
        sort(v2.begin(),v2.end());
        sort(v1.begin(),v1.end());
        ll cnt=0;
        for(i=0;i<v1.size();i++)
        {
            cnt+=(upper_bound(v2.begin(),v2.end(),v1[i])-lower_bound(v2.begin(),v2.end(),v1[i]));
        }
        cout<<cnt<<endl;
        v.clear();
        v1.clear();
        v2.clear();
    }
    return 0;
}

No comments:

Post a Comment