Submission #69472757


Source Code Expand

/*
~~ Alguma parte/frase foda de um livro/mangá para dar sorte ~~

Uma vez eu gritei, gradualmente, perdi minha voz.
Uma vez eu chorei, gradualmente, perdi minhas lágrimas.
Uma vez eu sofri, gradualmente, me tornei capaz de suportar tudo.
Uma vez me alegrei, gradualmente, me tornei indiferente ao mundo.
E agora, tudo o que me resta é um rosto sem expressão,
meu olhar é tão firme quanto um monólito,
apenas a perseverança permanece no meu coração.
Este sou eu, um personagem insignificante,
Fang Yuan — A Perseverança.

*/
#if defined(LOCAL) or not defined(LUOGU)
#pragma GCC optimize(3)
#pragma GCC optimize("Ofast,unroll-loops")
#endif

#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;

template <class T>
using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;

template <typename T>
ostream& operator<<(ostream &os, const vector<T> &v) {
    os << "[";
    for (size_t i = 0; i < v.size(); ++i) {
        os << v[i] << (i + 1 == v.size() ? "" : ", ");
    }
    os << "]";
    return os;
}

void dbg_out() { cerr << endl; }
template <typename Head, typename... Tail>
void dbg_out(Head H, Tail... T)
{
    cerr << ' ' << H;
    dbg_out(T...);
}
#define dbg(...) cerr << "(" << _VA_ARGS_ << "):", dbg_out(_VA_ARGS_), cerr << endl

#define int long long
#define IOS                           \
    ios_base::sync_with_stdio(false); \
    cin.tie(0)
#define TXTIO                           \
    freopen("entrada.in", "r", stdin);\
    freopen("saida.out", "w", stdout)
#define pb push_back
#define all(v) v.begin(), v.end()
#define f first
#define s second
#define Unique(v)                     \
    sort(all(v));                     \
    v.erase(unique(all(v)), v.end()); \
    v.shrink_to_fit()
#define sz(v) ((int)v.size())
#define sor(x) sort(all(x))
#define ft front()
#define bk back()
#define endl "\n"
#define rep(i, a, b) for (int i = a; i < (b); ++i)
#define MIN(v) *min_element(all(v))
#define MAX(v) *max_element(all(v))
#define LB(c, x) distance((c).begin(), lower_bound(all(c), (x)))
#define UB(c, x) distance((c).begin(), upper_bound(all(c), (x)))
typedef vector<double> vd;
typedef vector<vd> vvd;
typedef vector<vvd> vvvd;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef vector<vvi> vvvi;
typedef long long ll;
typedef double db;
typedef long double ld;
typedef pair<int, int> pii;
typedef pair<int, pii> piii;
typedef vector<pii> vii;
typedef vector<piii> viii;
typedef tuple<int, int, int> tiii;
const int MAXN = 2e5 + 5;
const int INF = 0x3f3f3f3f;
const ll LINF = 0x3f3f3f3f3f3f3f3fll;
const int mod = 1e9 + 7;
const int LOGN = 21;

void solve()
{
    int n; cin >> n;
    vi a(n), b(n);
    vvi adj(n+1);

    queue<int> q;
    vector<bool> vis(n+1, false);

    rep(i, 0, n) {
        cin >> a[i];
        cin >> b[i];
        if(!a[i] && !b[i]){
            q.push(i+1);
            vis[i+1] = true;
        }else{
            adj[a[i]].pb(i+1);
            adj[b[i]].pb(i+1);
        }
    }

    while(sz(q)){
        int u = q.front();
        q.pop();
        for(int v : adj[u]){
            if(!vis[v]){
                vis[v] = true;
                q.push(v);
            }
        }
    }
    int ans = 0;
    rep(i, 1, n+1) if(vis[i]) ans++;
    cout << ans << endl;

}

int32_t main()
{
    IOS;
    int tt;
    tt = 1;
    while (tt --> 0)
        solve();
    return 0;
}

Submission Info

Submission Time
Task C - New Skill Acquired
User Marcux777
Language C++ 20 (gcc 12.2)
Score 300
Code Size 3619 Byte
Status AC
Exec Time 58 ms
Memory 18464 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 300 / 300
Status
AC × 2
AC × 30
Set Name Test Cases
Sample sample_01.txt, sample_02.txt
All hand_01.txt, hand_02.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, random_21.txt, random_22.txt, random_23.txt, random_24.txt, random_25.txt, random_26.txt, sample_01.txt, sample_02.txt
Case Name Status Exec Time Memory
hand_01.txt AC 1 ms 3428 KiB
hand_02.txt AC 1 ms 3428 KiB
random_01.txt AC 51 ms 17824 KiB
random_02.txt AC 3 ms 3968 KiB
random_03.txt AC 54 ms 18464 KiB
random_04.txt AC 39 ms 14384 KiB
random_05.txt AC 57 ms 18308 KiB
random_06.txt AC 40 ms 14396 KiB
random_07.txt AC 54 ms 18328 KiB
random_08.txt AC 15 ms 11776 KiB
random_09.txt AC 54 ms 17072 KiB
random_10.txt AC 51 ms 17368 KiB
random_11.txt AC 33 ms 16996 KiB
random_12.txt AC 51 ms 17852 KiB
random_13.txt AC 58 ms 17796 KiB
random_14.txt AC 51 ms 17860 KiB
random_15.txt AC 51 ms 17864 KiB
random_16.txt AC 19 ms 9916 KiB
random_17.txt AC 46 ms 16504 KiB
random_18.txt AC 6 ms 4808 KiB
random_19.txt AC 22 ms 10068 KiB
random_20.txt AC 34 ms 13044 KiB
random_21.txt AC 1 ms 3616 KiB
random_22.txt AC 11 ms 6312 KiB
random_23.txt AC 44 ms 15580 KiB
random_24.txt AC 12 ms 7104 KiB
random_25.txt AC 22 ms 9916 KiB
random_26.txt AC 2 ms 3884 KiB
sample_01.txt AC 1 ms 3424 KiB
sample_02.txt AC 1 ms 3452 KiB