Submission #500362

#TimeUsernameProblemLanguageResultExecution timeMemory
500362GenericAccountMonthly railway pass (LMIO18_menesinis_bilietas)C++17
75 / 100
3067 ms79688 KiB
#include<bits/stdc++.h> using namespace std; vector<vector<int>>tConn; vector<vector<int>>aConn; int N,M; struct Group{ vector<int>miestai; vector<int>connections; void mergeGroup(Group g){ for(int m:g.miestai) miestai.push_back(m); for(int c:g.connections) if(find(connections.begin(), connections.end(), c)==connections.end()) connections.push_back(c); } bool hasCity(int city){ return (find(miestai.begin(), miestai.end(), city)!=miestai.end()); } bool hasConnection(int conn){ return (find(connections.begin(), connections.end(), conn)!=connections.end()); } }; void dumpGroups(vector<Group> grupes){ for (Group g : grupes) { for (int m : g.miestai) { cout<<m<<" "; } cout<<" ----> "; for (int c : g.connections) { cout<<c<<" "; } cout<<endl; } } int main() { cin >> N >> M; int a, b; char T; tConn.resize(N); aConn.resize(N); for (int i = 0; i < M; i++) { cin >> a >> b >> T; if(T=='T'){ tConn[a-1].push_back(b-1); tConn[b-1].push_back(a-1); } else{ aConn[a-1].push_back(b-1); aConn[b-1].push_back(a-1); } } vector<Group>grupes; vector<int>sk_grupe(N, -1); queue<int> nextToCheck; for (int i = 0; i < N; i++) { if (sk_grupe[i] == -1) { grupes.push_back(Group()); nextToCheck.push(i); while (!nextToCheck.empty()) { if (sk_grupe[nextToCheck.front()] == -1) { sk_grupe[nextToCheck.front()] = grupes.size() - 1; grupes[grupes.size() - 1].miestai.push_back(nextToCheck.front()); for (int c : tConn[nextToCheck.front()]) { nextToCheck.push(c); } } nextToCheck.pop(); } } } for(int i=0; i<grupes.size(); i++){ for (int m : grupes[i].miestai) { for (int c : aConn[m]) { if (!grupes[i].hasConnection(sk_grupe[c])&&sk_grupe[c]!=i){ grupes[i].connections.push_back(sk_grupe[c]); } } } } int m=0; for (Group g : grupes) { if(g.connections.size()==grupes.size()-1){ //turi visas grupes m+=g.miestai.size(); } } cout<<m<<endl; }

Compilation message (stderr)

menesinis_bilietas.cpp: In function 'int main()':
menesinis_bilietas.cpp:85:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<Group>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   85 |   for(int i=0; i<grupes.size(); 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...