Submission #639591

#TimeUsernameProblemLanguageResultExecution timeMemory
639591PietraMonthly railway pass (LMIO18_menesinis_bilietas)C++17
100 / 100
1097 ms96724 KiB
// qr ficar na cidade que torna mais barato - ele n paga metro // mas paga trem // quais cidades ele teria q ir de onibus visitar? // pode pegar no max um onibus // resume as componentes q tem metro // trata como um grafo com essas comps (salvando o size) // e as linhas de onibus p conectar // considera apenas os caras q tem ligação pra tds comps como resp #include<bits/stdc++.h> using namespace std ; const int maxn = 5e5 + 5 ; int n, m, vis[maxn], sz[maxn], comp[maxn], ct ; vector<pair<int,int>> bus ; vector<int> grafo[maxn], tree[maxn] ; map<pair<int,int>, int> mp ; void dfs(int v, int p){ vis[v] = 1, comp[v] = ct ; sz[ct]++ ; for(auto a : grafo[v]){ if(vis[a] || a == p) continue ; dfs(a, v) ; } } int main(){ cin >> n >> m ; for(int i = 1 ; i <= m ; i++){ int a, b ; char t ; cin >> a >> b >> t ; if(t == 'T') grafo[a].push_back(b), grafo[b].push_back(a) ; else bus.push_back({a, b}) ; } for(int i = 1 ; i <= n ; i++){ if(!vis[i]){ ct++ ; dfs(i, i) ; } } for(auto a : bus){ int x = a.first, y = a.second ; if(comp[x] != comp[y] && mp.find({comp[x], comp[y]}) == mp.end()){ mp[{comp[x], comp[y]}] = 1, mp[{comp[y], comp[x]}] = 1 ; tree[comp[x]].push_back(comp[y]), tree[comp[y]].push_back(comp[x]) ; } } int ans = 0 ; for(int i = 1 ; i <= ct ; i++){ // cout << grafo[i].size() << "\n" ; if(tree[i].size() >= ct - 1) ans += sz[i] ; } cout << ans << "\n" ; }

Compilation message (stderr)

menesinis_bilietas.cpp: In function 'int main()':
menesinis_bilietas.cpp:57:31: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   57 |             if(tree[i].size() >= ct - 1) ans += sz[i] ;
      |                ~~~~~~~~~~~~~~~^~~~~~~~~
#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...