제출 #1139688

#제출 시각아이디문제언어결과실행 시간메모리
1139688tone_alexandruMonthly railway pass (LMIO18_menesinis_bilietas)C++20
0 / 100
6 ms6976 KiB
#include <bits/stdc++.h>
#define int long long

using namespace std;

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

bool saveT[200005], saveA[200005];
int minim[200005];
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, saveA[i] = 0, saveT[i] = 0;
        minim[i] = 0;

        q.push(i);

        while(q.empty() == false)
        {
            int nod = q.front();
            q.pop();
            saveT[nod] = 1;
            saveA[nod] = 1;

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

                if(type == 'T' && saveT[x.first] == 0 && minim[x.first] > minim[nod])
                {
                    minim[x.first] = minim[nod];
                    saveT[x.first] = 1;
                    q.push(x.first);
                }
                else if(type == 'A' && saveA[x.first] == 0 && minim[x.first] > minim[nod] + 1)
                {
                    minim[x.first] = minim[nod] + 1;
                    saveA[x.first] = 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...