Submission #610564

#TimeUsernameProblemLanguageResultExecution timeMemory
6105641binUntitled (POI11_smi)C++14
20 / 100
808 ms63544 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], vis[NMAX], fin; vector<pair<int, int>> adj[NMAX]; vector<vector<int>> v; void dfs(int x, vector<int> & t){ t.emplace_back(x); if(vis[x]) { fin = 1; return; } vis[x] = 1; for(int& i = w[x]; i < adj[x].size(); i++){ auto& [nx, e] = adj[x][i]; if(chk[e]) continue; chk[e] = 1; dfs(nx, t); if(fin) { vis[x] = 0; return; } } 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; fin = 0; dfs(i, t); if(t.size() == 1) continue; 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:18:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   18 |     for(int& i = w[x]; i < adj[x].size(); i++){
      |                        ~~^~~~~~~~~~~~~~~
smi.cpp:19:15: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   19 |         auto& [nx, e] = adj[x][i];
      |               ^
smi.cpp: In function 'int main()':
smi.cpp:48: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]
   48 |         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...