Submission #398905

# Submission time Handle Problem Language Result Execution time Memory
398905 2021-05-04T22:04:22 Z Mohammed_Alsaad Cop and Robber (BOI14_coprobber) C++17
16 / 100
53 ms 1772 KB
#include <bits/stdc++.h>
using namespace std;

template <typename A, typename B> string to_string(pair<A, B> p);
template <typename A, typename B, typename C> string to_string(tuple<A, B, C> p);
template <typename A, typename B, typename C, typename D> string to_string(tuple<A, B, C, D> p);

string to_string(const string &s)
{
    return '"' + s + '"';
}
string to_string(const char *s)
{
    return to_string((string)s);
}
string to_string(bool b)
{
    return (b ? "true" : "false");
}
// string to_string(vector<bool> v)
// {
//     bool first = true;
//     string res = "{";
//     for (int i = 0; i < static_cast<int>(v.size()); i++)
//     {
//         if (!first)
//         {
//             res += ", ";
//         }
//         first = false;
//         res += to_string(v[i]);
//     }
//     res += "}";
//     return res;
// }
template <size_t N> string to_string(bitset<N> v)
{
    string res = "";
    for (size_t i = 0; i < N; i++)
    {
        res += static_cast<char>('0' + v[i]);
    }
    return res;
}
template <typename A> string to_string(A v)
{
    bool first = true;
    string res = "{";
    for (const auto &x : v)
    {
        if (!first)
        {
            res += ", ";
        }
        first = false;
        res += to_string(x);
    }
    res += "}";
    return res;
}
template <typename A, typename B> string to_string(pair<A, B> p)
{
    return "(" + to_string(p.first) + ", " + to_string(p.second) + ")";
}
template <typename A, typename B, typename C> string to_string(tuple<A, B, C> p)
{
    return "(" + to_string(get<0>(p)) + ", " + to_string(get<1>(p)) + ", " + to_string(get<2>(p)) + ")";
}
template <typename A, typename B, typename C, typename D> string to_string(tuple<A, B, C, D> p)
{
    return "(" + to_string(get<0>(p)) + ", " + to_string(get<1>(p)) + ", " + to_string(get<2>(p)) + ", " +
           to_string(get<3>(p)) + ")";
}
void dbg_out()
{
    cout << endl;
}
template <typename Head, typename... Tail> void dbg_out(Head H, Tail... T)
{
    cout << " " << to_string(H);
    dbg_out(T...);
}

#define FAST_IO                                                                                                        \
    ios_base::sync_with_stdio(false);                                                                                  \
    cin.tie(NULL);                                                                                                     \
    cout.tie(NULL);

#define dbg(...) cout << "[" << #__VA_ARGS__ << "]:", dbg_out(__VA_ARGS__)
#define edl() cout << endl;

#define rep(i, a, b) for (int i = a; i < b; i++)

#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
#define pb push_back
#define pf push_front

#define F first
#define S second

#define max_self(x, y) x = max(x, y)
#define min_self(x, y) x = min(x, y)

typedef long long ll;
ll const INF = 2147483647, R_INF = 9223372036854775807, MOD = 1e9 + 7;

// const int mxN =

const int MAX_N = 500;

vector<int> adj[MAX_N];

int prv;

int start(int N, bool A[MAX_N][MAX_N])
{
    rep(i, 0, MAX_N) rep(j, 0, MAX_N) if (A[i][j]) adj[i].pb(j);
    return 0;
}

int nextMove(int R)
{
    vector<bool> vis(MAX_N);
    vis[prv] = true;

    queue<pair<int, int>> q;
    for (int u : adj[prv])
    {
        q.push({u, u});
        vis[u] = true;
    }
    while (!q.empty())
    {
        auto cur = q.front();
        q.pop();

        if (cur.F == R)
            return prv = cur.S;

        for (int u : adj[cur.F])
        {
            if (vis[u])
                continue;

            vis[u] = true;
            q.push({u, cur.S});
        }
    }
    assert(false);
}

/*



*/
# Verdict Execution time Memory Grader output
1 Correct 1 ms 200 KB Output is correct
2 Correct 1 ms 200 KB Output is correct
3 Correct 1 ms 328 KB Output is correct
4 Correct 52 ms 1772 KB Output is correct
5 Correct 13 ms 840 KB Output is correct
6 Correct 53 ms 1588 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 200 KB the situation repeated
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 200 KB Output is correct
2 Correct 1 ms 200 KB Output is correct
3 Correct 1 ms 328 KB Output is correct
4 Incorrect 1 ms 200 KB the situation repeated
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 200 KB Output is correct
2 Correct 1 ms 200 KB Output is correct
3 Correct 1 ms 328 KB Output is correct
4 Correct 52 ms 1772 KB Output is correct
5 Correct 13 ms 840 KB Output is correct
6 Correct 53 ms 1588 KB Output is correct
7 Incorrect 1 ms 200 KB the situation repeated
8 Halted 0 ms 0 KB -