제출 #1139722

#제출 시각아이디문제언어결과실행 시간메모리
1139722tone_alexandruMonthly railway pass (LMIO18_menesinis_bilietas)C++20
30 / 100
3095 ms28468 KiB
#include <bits/stdc++.h>

using namespace std;

vector<pair<int, char>> adj[500005];
queue<int> q;

int minim[500005];
signed main()
{
    int n, m;
    cin>>n>>m;

    int a, b;
    char type;
    for(int i=0; i<m; i++)
    {
        cin>>a>>b>>type;

        adj[a].push_back({b, type});
        adj[b].push_back({a, type});
    }

    int cnt = 0;
    for(int i=1; i<=n; i++)
    {
        for(int i=1; i<=n; i++)
            minim[i] = 21e8;
        minim[i] = 0;

        q.push(i);

        while(q.empty() == false)
        {
            int nod = q.front();
            q.pop();

            for(auto x : adj[nod])
            {
                int type = x.second;

                if(type == 'T'&& minim[x.first] > minim[nod])
                {
                    minim[x.first] = minim[nod];
                    q.push(x.first);
                }
                else if(type == 'A' && minim[x.first] > minim[nod] + 1)
                {
                    minim[x.first] = minim[nod] + 1;
                    q.push(x.first);
                }
            }
        }

        int ok = 0;
        for(int j=1; j<=n; j++)
        {
            //cout<<j<<" "<<minim[j]<<'\n';
            if(minim[j] > 1)
            {
                ok = 1;
                //break;
            }
        }

        //cout<<'\n';
        if(ok == 0) cnt++;
    }

    cout<<cnt;


    return 0;
}
#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...