Submission #382014

# Submission time Handle Problem Language Result Execution time Memory
382014 2021-03-26T09:32:22 Z Vimmer Vepar (COCI21_vepar) C++14
30 / 70
1500 ms 249820 KB
#include <bits/stdc++.h>
//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>

#pragma GCC optimize("Ofast")
#pragma GCC optimize("-O3")
#pragma GCC optimize("unroll-loops")

#define N 100500
#define NN 10000005
#define PB push_back
#define endl '\n'
#define pri(x) cout << x << endl
#define _ << " " <<
#define sz(x) int(x.size())
#define F first
#define S second
#define all(x) x.begin(), x.end()

using namespace std;
//using namespace __gnu_pbds;

typedef long long ll;

//typedef tree <int, null_type, less_equal <int>, rb_tree_tag, tree_order_statistics_node_update> ord_set;

vector <int> vr[NN], pr;

int mk[NN], id;

bool mkr[NN];

int kol[NN];

int main()
{
    ios_base::sync_with_stdio(0); istream::sync_with_stdio(0); cin.tie(0); cout.tie(0);

//    freopen("1.in", "r", stdin);

    for (int i = 2; i < NN; i++)
    {
        if (mkr[i]) continue;

        pr.PB(i);

        for (ll j = 1ll * i * i; j < NN; j += i)
            mkr[j] = 1;
    }

    int q;

    cin >> q;

    for (; q > 0; q--)
    {
        int a, b, c, d;

        cin >> a >> b >> c >> d;

        if (c <= a && b <= d)
        {
            pri("DA");

            continue;
        }

        if (a < c && d < b)
        {
            pri("NE");

            continue;
        }

        id++;

        for (int i = c; i <= d; i++)
        {
            if (sz(vr[i]) == 0)
            {
                int x = i;

                for (auto it : pr)
                {
                    if (x < it) break;

                    while (x % it == 0)
                    {
                        x /= it;

                        vr[i].PB(it);
                    }
                }
            }

            for (auto it : vr[i])
            {
                if (mk[it] != id)
                {
                    mk[it] = id;

                    kol[it] = 0;
                }

                kol[it]++;
            }
        }

        bool gd = 1;

        for (int i = a; i <= b && gd; i++)
            {
                if (sz(vr[i]) == 0)
                {
                    int x = i;

                    for (auto it : pr)
                    {
                        if (x < it) break;

                        while (x % it == 0)
                        {
                            x /= it;

                            vr[i].PB(it);
                        }
                    }
                }

                for (auto it : vr[i])
                {
                    if (mk[it] != id)
                    {
                        gd = 0;

                        break;
                    }

                    kol[it]--;

                    if (kol[it] == -1)
                    {
                        gd = 0;

                        break;
                    }
                }
            }

        if (gd)
        {
            pri("DA");
        }
        else
        {
            pri("NE");
        }
    }
}
# Verdict Execution time Memory Grader output
1 Correct 237 ms 249240 KB Output is correct
2 Correct 235 ms 249188 KB Output is correct
3 Correct 235 ms 249188 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 237 ms 249188 KB Output is correct
2 Correct 253 ms 249188 KB Output is correct
3 Correct 253 ms 249188 KB Output is correct
4 Correct 242 ms 249188 KB Output is correct
5 Correct 246 ms 249356 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 253 ms 249188 KB Output is correct
2 Correct 229 ms 249188 KB Output is correct
3 Correct 248 ms 249284 KB Output is correct
4 Correct 243 ms 249188 KB Output is correct
5 Correct 251 ms 249348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 1596 ms 249380 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1596 ms 249764 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1612 ms 249820 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1603 ms 249756 KB Time limit exceeded
2 Halted 0 ms 0 KB -