Cod sursa(job #1123896)

Utilizator catalincraciunCraciun Catalin catalincraciun Data 26 februarie 2014 10:34:28
Problema Triplete Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.19 kb
/// Craciun Catalin
///  Triplete
///   Infoarena
///    PreONI 2007, Runda 1
///     www.infoarena.ro/problema/triplete
///      Parcurgere bruta: Prima metoda de rezolvare e bruta si are complexitate exponentiala: O((n*(n+1)/2)*n)
#include <fstream>
#include <iostream>

#define NMax 4100
#define MMax 65540
// #define DEBUG 1

using namespace std;

ifstream f("triplete.in");
ofstream g("triplete.out");

int n,m;
bool A[NMax][NMax]; /// Matricea de adiacenta
long triplete=0;

void parcurgereBruta()
{
    for (int i=1;i<=n;i++)
        for (int j=i+1;j<=n;j++)
            for (int k=j+1;k<=n;k++)
                if (A[i][j] && A[j][k] && A[k][i])
                    triplete++;

    g<<triplete<<'\n';
    g.close();
}

void afisare()
{
#ifdef DEBUG
    for (int i=1;i<=n;i++)
    {
        for (int j=1;j<=n;j++)
            cout<<A[i][j]<<' ';
        cout<<endl;
    }
#endif // DEBUG
}

void citire()
{
    f>>n>>m;
    for (int i=1;i<=m;i++)
    {
        int x,y;
        f>>x>>y;
        A[x][y]=A[y][x]=true;
    }

    f.close();
}

int main()
{
    citire();
    afisare();
    // if (n<=600)
        parcurgereBruta();

    return 0;
}