Cod sursa(job #1902279)

Utilizator andru47Stefanescu Andru andru47 Data 4 martie 2017 14:54:29
Problema Amlei Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.43 kb
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 500 + 5;
int n,t,u,a[50 *NMAX],b[50 * NMAX];
bool ap[150 + 5];
int main()
{
    ifstream f("amlei.in");
    freopen("amlei.out","w",stdout);
    f >> n >> t >> u;
    do
    {
        for (int i = 1; i <= n * t; ++i)
        {
            f >> a[i];
            a[i] += 100;
        }
        for (int i = 1; i <= n * u; ++i)
        {
            f >> b[i];
            b[i] += 100;
        }
        for (int i = 1; i<= n * t ; i += n)
            sort(a + i, a + i + n );
        for (int i = 1; i<= n * u ; i += n)
            sort(b + i, b + i + n );
        bool fals = true;
        for (int i = 1; i<=n * t && fals == true; i += n)
        {
            memset(ap , false, sizeof(ap));
            for (int ii = i; ii<=i + n - 1; ++ii)
                ap[a[ii]] = true;
            bool OK = false;
            for (int j = 1; j <= n * u; j += n)
            {
                bool Ok = true;
                for (int jj = j; jj<= j + n - 1; ++jj)
                    if (ap[b[jj]] == false)
                        Ok = false;
                if (Ok == true)
                {
                    OK = true;
                    break;
                }
            }
            if (OK == true)
                continue;
            else
            {
                printf("NU\n");
                fals = false;
            }

        }
        if (fals == false)
        {
            f >> n >> t >> u;
            continue;
        }
        for (int i = 1; i<=n * u && fals == true; i += n)
        {
            memset(ap , false, sizeof(ap));
            for (int ii = i; ii<=i + n - 1; ++ii)
                ap[b[ii]] = true;
            bool OK = true;
            for (int j = 1; j <= n * t; j += n)
            {
                bool Ok = true;
                for (int jj = j; jj<= j + n - 1; ++jj)
                    if (ap[a[jj]] == false)
                        Ok = false;
                if (Ok == true)
                {
                    OK = true;
                    break;
                }
            }
            if (OK == true)
                continue;
            else
            {
                printf("NU\n");
                fals = false;
            }

        }
        if (fals == true)
            printf("DA\n");
        f >> n >> t >> u;
    }
    while(!f.eof());
    return 0;
}