Submission #610556

#TimeUsernameProblemLanguageResultExecution timeMemory
6105561binUntitled (POI11_smi)C++14
10 / 100
819 ms137964 KiB
#include <bits/stdc++.h>

using namespace std;

#define all(v) v.begin(), v.end()
typedef long long ll;
const int NMAX = 1e6 + 5;
int n, m, a, b, s, t, w[NMAX], chk[NMAX];
vector<pair<int, int>> adj[NMAX];
vector<vector<int>> v;

void dfs(int x, vector<int> & t){
    t.emplace_back(x);
    for(auto& i = w[x]; i < adj[x].size(); i++){
        auto& [nx, e] = adj[x][i];
        if(chk[e]) continue;
        chk[e] = 1;
        dfs(nx, t);
    }
    return;
}

int main(void){
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    
    cin >> n >> m;
    for(int i = 0; i < m; i++){
        cin >> a >> b >> s >> t;
        if(s ^ t) {
            adj[a].emplace_back(b, i);
            adj[b].emplace_back(a, i);
        }
    } 
    
    for(int i = 1; i <= n; i++)
        if(adj[i].size() & 1){
             cout << "NIE"; return 0;
        }
    for(int i = 1; i <= n; i++)
        if(w[i] < adj[i].size()){
            vector<int> t;
            dfs(i, t);
            v.emplace_back(t);
        }
        
    cout << v.size() << '\n';
    for(auto& t : v){
        cout << t.size()- 1 << ' ';
        for(int x : t) cout << x << ' ';
        cout << '\n';
    }
    return 0;
}

Compilation message (stderr)

smi.cpp: In function 'void dfs(int, std::vector<int>&)':
smi.cpp:14:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   14 |     for(auto& i = w[x]; i < adj[x].size(); i++){
      |                         ~~^~~~~~~~~~~~~~~
smi.cpp:15:15: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   15 |         auto& [nx, e] = adj[x][i];
      |               ^
smi.cpp: In function 'int main()':
smi.cpp:40:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   40 |         if(w[i] < adj[i].size()){
      |            ~~~~~^~~~~~~~~~~~~~~
#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...
#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...