제출 #225432

#제출 시각아이디문제언어결과실행 시간메모리
225432emil_physmathNice sequence (IZhO18_sequence)C++17
100 / 100
1506 ms73292 KiB
#include <algorithm> #include <iostream> #include <vector> #include <set> using namespace std; typedef double ldouble; typedef long long llong; typedef unsigned int uint; const int maxN = 100001; vector<int> nei[400001]; int a[400001]; bool used[400001]; void DFS(int v, vector<int>& order) { used[v] = true; for (int to: nei[v]) if (!used[to]) DFS(to, order); order.push_back(v); } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int t; cin >> t; while (t--) { int n, m; cin >> n >> m; int len = 0; int i = 0; do { len = max(len, i += n); while (i - m >= 0) i -= m; } while (i); --len; for (int i = 0; i <= len; ++i) { used[i] = a[i] = 0; nei[i].clear(); } for (int i = 1; i <= len; ++i) { if (i - n >= 0) nei[i].push_back(i - n); if (i - m >= 0) nei[i - m].push_back(i); } vector<int> order; for (int i = 0; i <= len; ++i) if (!used[i]) DFS(i, order); reverse(order.begin(), order.end()); vector<int> pref(len + 1); for (int i = 0; i < order.size(); ++i) pref[order[i]] = i; for (int i = 1; i < pref.size(); ++i) pref[i] -= pref[0]; pref[0] = 0; for (int i = 1; i <= len; ++i) a[i] = pref[i] - pref[i - 1]; cout << len << endl; for (int i = 1; i <= len; ++i) cout << a[i] << ' '; cout << '\n'; } }

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

sequence.cpp: In function 'int main()':
sequence.cpp:44:28: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
             used[i] = a[i] = 0;
                       ~~~~~^~~
sequence.cpp:60:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (int i = 0; i < order.size(); ++i)
                         ~~^~~~~~~~~~~~~~
sequence.cpp:62:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (int i = 1; i < pref.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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...