제출 #722783

#제출 시각아이디문제언어결과실행 시간메모리
722783groshiMonthly railway pass (LMIO18_menesinis_bilietas)C++17
100 / 100
472 ms55780 KiB
#include<bits/stdc++.h>

using namespace std;
struct wi{
    vector<int> Q,inne;
    int odw=0,byl=0;
}*w;
set<int> secik;
int mam=1;
void reku(int x)
{
    w[x].odw=mam;
    for(int i=0;i<w[x].Q.size();i++)
    {
        int pom=w[x].Q[i];
        if(w[pom].odw)
            continue;
        reku(pom);
    }
}
int wiel=0;
void reku2(int x)
{
    w[x].byl=1;
    wiel++;
    for(int i=0;i<w[x].inne.size();i++)
        secik.insert(w[w[x].inne[i]].odw);
    for(int i=0;i<w[x].Q.size();i++)
    {
        int pom=w[x].Q[i];
        if(w[pom].byl)
            continue;
        reku2(pom);
    }
}
int32_t main()
{
    cin.tie(0);
    cout.tie(0);
    ios_base::sync_with_stdio(0);
    int n,m,x,y;
    char co;
    cin>>n>>m;
    w=new wi[n+3];
    for(int i=1;i<=m;i++)
    {
        cin>>x>>y>>co;
        if(co=='T')
        {
            w[x].Q.push_back(y);
            w[y].Q.push_back(x);
        }
        else{
            w[x].inne.push_back(y);
            w[y].inne.push_back(x);
        }
    }
    for(int i=1;i<=n;i++)
        if(w[i].odw)
            continue;
        else{
            reku(i);
            mam++;
        }
    int wynik=0;
    for(int i=1;i<=n;i++)
    {
        if(w[i].byl)
            continue;
        secik.clear();
        wiel=0;
        reku2(i);
        secik.insert(w[i].odw);
        if(secik.size()==mam-1)
            wynik+=wiel;
    }
    cout<<wynik;
    return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

menesinis_bilietas.cpp: In function 'void reku(int)':
menesinis_bilietas.cpp:13:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   13 |     for(int i=0;i<w[x].Q.size();i++)
      |                 ~^~~~~~~~~~~~~~
menesinis_bilietas.cpp: In function 'void reku2(int)':
menesinis_bilietas.cpp:26:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   26 |     for(int i=0;i<w[x].inne.size();i++)
      |                 ~^~~~~~~~~~~~~~~~~
menesinis_bilietas.cpp:28:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   28 |     for(int i=0;i<w[x].Q.size();i++)
      |                 ~^~~~~~~~~~~~~~
menesinis_bilietas.cpp: In function 'int32_t main()':
menesinis_bilietas.cpp:74:24: warning: comparison of integer expressions of different signedness: 'std::set<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   74 |         if(secik.size()==mam-1)
      |            ~~~~~~~~~~~~^~~~~~~
#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...