제출 #896155

#제출 시각아이디문제언어결과실행 시간메모리
896155I_am_Polish_GirlSenior Postmen (BOI14_postmen)C++14
0 / 100
15 ms8268 KiB
/* * powered by ANDRIY POPYK * in honor of SEGMENT DECOMPOSITION and N ^ (log(N)) and hate_club_Dasha_Lobas * I hate GeZhiyuan * fuck you */ /* #pragma GCC optimize("Ofast") #pragma GCC target("avx,avx2,fma") #pragma GCC optimization("unroll-loops") #pragma GCC target("avx,avx2,sse,sse2,sse3,sse4,popcnt") */ #include <algorithm> #include <cmath> #include <cstdio> #include <iostream> #include <map> #include <set> #include <bitset> #include <queue> #include <string> #include <vector> #include <stack> #include <random> #include <ctime> #include <iomanip> #include <unordered_map> #include <unordered_set> using namespace std; typedef long long ll; #define int long long int mod = 998244353; int inf = 2000000000000000000; vector <vector <int>> g; vector <pair <int, int>> edges; vector <int> ind_ed; vector <bool> t; vector <int> el; void dfs(int ind) { while (ind_ed[ind] < g[ind].size()) { int i = g[ind][ind_ed[ind]]; ind_ed[ind]++; if (t[i] == true) continue; t[i] = true; t[i ^ 1] = true; dfs(edges[i].second); } el.push_back(ind); } signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int times_ = 1; //cin >> times_; while (times_--) { int n, m; cin >> n >> m; g.resize(n); ind_ed.resize(n, 0); for (int i = 0; i < m; i++) { int u, v; cin >> u >> v; u--; v--; g[u].push_back(2 * i); g[v].push_back(2 * i + 1); edges.push_back({ u , v }); edges.push_back({ v , u }); } t.resize(edges.size(), false); if (m <= 50000) dfs(0); set <int> s; for (int i = 0; i < el.size(); i++) { if (s.count(el[i]) == 0) { s.insert(el[i]); } else { int ind = i - 1; while (s.count(el[i]) > 0) { if (s.count(el[ind]) > 0) cout << el[ind] + 1 << " "; s.erase(el[ind]); ind--; } cout << "\n"; s.insert(el[i]); } } } } /* axbbbbbbzbxbbabaxbbabababababababaababababababababaabababababababxbxbb 5 ababb bbb tr are aaa */ /* 4 12 1 1 1 2 2 3 4 4 7 7 6 11 2 1 11 12 8 5 8 8 5 11 7 13 1 1 1 2 2 2 3 3 4 5 6 6 2 2 2 1 4 9 7 2 5 2 1 11 2 7 1 1 2 2 3 3 6 5 2 3 6 5 6 */

컴파일 시 표준 에러 (stderr) 메시지

postmen.cpp: In function 'void dfs(long long int)':
postmen.cpp:50:21: warning: comparison of integer expressions of different signedness: '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'} and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   50 |  while (ind_ed[ind] < g[ind].size())
postmen.cpp: In function 'int main()':
postmen.cpp:101:21: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  101 |   for (int i = 0; i < el.size(); i++)
      |                   ~~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...