제출 #38339

#제출 시각아이디문제언어결과실행 시간메모리
38339antimirageLongest beautiful sequence (IZhO17_subsequence)C++14
0 / 100
0 ms174712 KiB
#include <stdio.h> #include <utility> #include <vector> #include <algorithm> #include <time.h> #pragma GCC optimize ("O3") #define QWE clo\ ck() const int N = 1e5 + 5; int n, ar[N], k[N], p[N], Bit[1025]; std::pair <int, int> ans, dp[1025][1025][21]; std::vector <int> vec; int main () { for (int i = 0; i <= 1024; i++) Bit[i] = __builtin_popcount(i); scanf("%d", &n); for (int i = 1; i <= n; i++) scanf("%d", &ar[i]); for (int i = 1; i <= n; i++) scanf("%d", &k[i]); for (int i = 1; i <= n; i++) { int cur = 1, pref = ar[i] >> 10, suf = ar[i] % 1024; for (int mask = 0; mask < 1024; mask++) { int need = k[i] - Bit[ pref & mask ]; if ( need < 0 || need > 10 ) continue; if (cur < dp[mask][suf][need].first + 1) { cur = dp[mask][suf][need].first + 1; p[i] = dp[mask][suf][need].second; } } for (int mask = 0; mask < 1024; mask++) if ( dp[pref][mask][ Bit[ mask & suf ] ].first < cur ) dp[pref][mask][ Bit[ mask & suf ] ] = std::make_pair( cur, i ); if (cur > ans.first) ans = std::make_pair(cur, i); if (QWE > CLOCKS_PER_SEC * 5.5) break; } printf("%d\n", ans.first); while (ans.second) { vec.emplace_back(ans.second); ans.second = p[ans.second]; } std::reverse(vec.begin(), vec.end() ); for (auto x : vec) printf("%d ", x); }

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

subsequence.cpp: In function 'int main()':
subsequence.cpp:24:20: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d", &n);
                    ^
subsequence.cpp:27:28: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d", &ar[i]);
                            ^
subsequence.cpp:30:27: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d", &k[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...