Submission #1204860

#TimeUsernameProblemLanguageResultExecution timeMemory
1204860badge881Praktični (COCI18_prakticni)C++20
130 / 130
78 ms15552 KiB
#include <bits/stdc++.h> using namespace std; const int N = 1e5 + 5; int n, m; int s[N], t[N], w[N], d[N], cyc[N]; vector<int> vec, g[N]; bool check[N]; void dfs(int u, int p) { check[u] = true; for (int first : g[u]) { int v = u ^ s[first] ^ t[first]; if (v == p) continue; if (check[v]) vec.emplace_back(first), cyc[first] = d[v] ^ d[u] ^ w[first]; else d[v] = d[u] ^ w[first], dfs(v, u); } } int32_t main() { scanf("%d%d\n", &n, &m); for (int i = 1; i <= m; ++i) { scanf("%d%d%d\n", &s[i], &t[i], &w[i]); g[s[i]].emplace_back(i); g[t[i]].emplace_back(i); } dfs(1, 0); vector<pair<int, vector<int>>> ans; for (int i = 0; i < 30; ++i) { int val = 0; for (int v : vec) if (cyc[v] >> i & 1) val = cyc[v]; if (!val) continue; vector<int> ret; for (int v : vec) if (cyc[v] >> i & 1) { ret.emplace_back(v); cyc[v] ^= val; } ans.emplace_back(val, ret); } printf("%d\n", ans.size()); for (auto z : ans) { printf("%d %d ", z.first, z.second.size()); for (int v : z.second) printf("%d ", v); printf("\n"); } return 0; }

Compilation message (stderr)

parkticni.cpp: In function 'int32_t main()':
parkticni.cpp:54:14: warning: format '%d' expects argument of type 'int', but argument 2 has type 'std::vector<std::pair<int, std::vector<int> > >::size_type' {aka 'long unsigned int'} [-Wformat=]
   54 |     printf("%d\n", ans.size());
      |             ~^     ~~~~~~~~~~
      |              |             |
      |              int           std::vector<std::pair<int, std::vector<int> > >::size_type {aka long unsigned int}
      |             %ld
parkticni.cpp:57:21: warning: format '%d' expects argument of type 'int', but argument 3 has type 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wformat=]
   57 |         printf("%d %d ", z.first, z.second.size());
      |                    ~^             ~~~~~~~~~~~~~~~
      |                     |                          |
      |                     int                        std::vector<int>::size_type {aka long unsigned int}
      |                    %ld
parkticni.cpp:28:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   28 |     scanf("%d%d\n", &n, &m);
      |     ~~~~~^~~~~~~~~~~~~~~~~~
parkticni.cpp:31:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   31 |         scanf("%d%d%d\n", &s[i], &t[i], &w[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...
#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...