Cod sursa(job #2522899)

Utilizator mihnea.tTudor Mihnea mihnea.t Data 13 ianuarie 2020 11:21:57
Problema Puteri Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("puteri.in");
ofstream fout("puteri.out");

struct number
{
    int p2, p3, p5;
};

int n, k;

number v[100002];

void cit()
{
    fin>>n;

    for (int i=1; i <= n; ++i)
    {
        fin>>v[i].p2>>v[i].p3>>v[i].p5;
    }
}

int cmmdc(int x, int y)
{
    if (y == 0) return x;
    else return cmmdc(y, x % y);
}

void rez()
{
    for (int i=1; i <= n; ++i)
    {
        for (int j=i+1; j <= n; ++j)
        {
            int p2, p3, p5;

            p2 = v[i].p2 + v[j].p2;
            p3 = v[i].p3 + v[j].p3;
            p5 = v[i].p5 + v[j].p5;

            int norm = max(p2, max(p3, p5));

            if (p2) norm = cmmdc(norm, p2);
            if (p3) norm = cmmdc(norm, p3);
            if (p5) norm = cmmdc(norm, p5);

            if (norm >= 2)
            {
                k++;
            }
        }
    }

    fout<<k;
}

int main()
{
    cit();

    rez();

    return 0;
}