Submission #248825

#TimeUsernameProblemLanguageResultExecution timeMemory
248825andreiomdStray Cat (JOI20_stray)C++17
15 / 100
73 ms17284 KiB
#include "Anthony.h"
#include <bits/stdc++.h>

using namespace std;

const int NMAX = 2e4 + 5;
const int ROOT = 0;

vector < int > G[NMAX];
vector < int > ans;

int Level[NMAX];
bool Sel[NMAX];

queue < int > Q;

void Add_Edge (int x, int y)
{
    G[x].push_back(y), G[y].push_back(x);

    return;
}

void BFS (int Node)
{
    Sel[Node] = 1, Level[Node] = 0;
    Q.push(Node);

    while(!Q.empty())
    {
        int Node = Q.front();
        Q.pop();

        for(auto it : G[Node])
            if(!Sel[it])
            {
                Sel[it] = 1, Level[it] = 1 + Level[Node];
                Q.push(it);
            }
    }

    return;
}

vector < int > Mark (int N, int M, int A, int B, vector < int > U, vector < int > V)
{
    for(int i = 0; i < M; ++i)
    {
        int X = U[i], Y = V[i];

        Add_Edge(X, Y);
    }

    BFS(ROOT);

    ans.resize(M);
    ans.shrink_to_fit();

    for(int i = 0; i < M; ++i)
        ans[i] = min(Level[U[i]], Level[V[i]]) % 3;

    return ans;
}
#include "Catherine.h"
#include <bits/stdc++.h>

using namespace std;

int A, B;

void Init (int a, int b)
{
    A = a, B = b;

    return;
}

int Move (vector < int > y)
{
    int cnt = 0, X = -1;

    for(int i = 0; i < A; ++i)
        if(y[i])
            ++cnt, X = i;

    if(cnt == 1)
        return X;

    if(y[0] && y[1])
        return 0;

    if(y[1] && y[2])
        return 1;

    return 2;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...