Cod sursa(job #1791290)

Utilizator SolcanMihaiSolcan Mihai Andrei SolcanMihai Data 29 octombrie 2016 11:24:43
Problema Parantezare optima de matrici Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.41 kb
#include <cstdio>
#include <vector>
#include <algorithm>

using namespace std;

int t, n;
vector<int> numere;

bool solve()
{
    int sum1, sum2;

    sum1 = sum2 = 0;

    for(int i = 0; i < 2 * n; i += 2)
    {
        if(sum1 > sum2)
        {
            sum1 += numere[i];
            sum2 += numere[i + 1];
        }
        else
        {
            sum2 += numere[i];
            sum1 += numere[i + 1];
        }
    }

    if(sum1 == sum2)
    {
        return true;
    }
    else
    {
        return false;
    }
}

void afisare(int x)
{
    int nr = 1;

    while(nr < x)
    {
        nr <<= 1;
    }

    while(nr != 0)
    {
        if((nr & x) != 0)
        {
            printf("1");
        }
        else
        {
            printf("0");
        }

        nr >>= 1;
    }
}

void citire()
{
    scanf("%d", &t);

    int nrCorect = 0;

    for(int i = 0; i < t; i++)
    {
        scanf("%d", &n);

        int tmp;

        for(int i = 0; i < 2 * n; i++)
        {
            scanf("%d", &tmp);
            numere.push_back(tmp);
        }

        sort(numere.begin(), numere.end());

        if(solve() == true)
        {
            nrCorect++;
        }
    }

    afisare(nrCorect);
}

int main()
{
    freopen("echilibru.in", "r", stdin);
    freopen("echilibru.out", "w", stdout);

    citire();

    return 0;
}