제출 #852753

#제출 시각아이디문제언어결과실행 시간메모리
852753vjudge1Longest beautiful sequence (IZhO17_subsequence)C++17
0 / 100
6 ms47904 KiB
#include <bits/stdc++.h> #define ll pair<int,int> using namespace std; int a[100001]; int k[100001]; int dp[1024][1024][11]; int vt[1024][1024][11]; int kq[100001]; int bef[100001]; vector<int> lmao; signed main() { // freopen("guard.in","r",stdin); // freopen("guard.out","w",stdout); ios_base::sync_with_stdio(0); cin.tie(NULL); cout.tie(NULL); int n; cin >> n; for (int i=1;i<=n;i++) { cin >> a[i]; } for (int i=1;i<=n;i++) { cin >> k[i]; } int end=0; int maxx=0; for (int i=1;i<=n;i++) { int lf=a[i]>>10; int rt=a[i]&((1<<10)-1); for (int i2=0;i2<=(1<<10);i2++) { int kk=__builtin_popcount(i2&rt); if ((k[i]-kk>=0) and (k[i]-kk<=10)) { if (kq[i]<dp[lf][i2][k[i]-kk]+1) bef[i]=vt[lf][i2][k[i]-kk]; kq[i]=max(dp[lf][i2][k[i]-kk]+1,kq[i]); } } for (int i2=0;i2<=(1<<10);i2++) { int kk=__builtin_popcount(i2&lf); if (dp[i2][rt][kk]<kq[i]) vt[i2][rt][kk]=i; dp[i2][rt][kk]=max(kq[i],dp[i2][rt][kk]); } if (maxx<kq[i]) end=i; maxx=max(maxx,kq[i]); } cout << maxx << '\n'; while (end!=0) { lmao.push_back(end); end=bef[end]; } sort (lmao.begin(),lmao.end()); for (int i=0;i<lmao.size();i++) cout << lmao[i] << " " ; }

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

subsequence.cpp: In function 'int main()':
subsequence.cpp:61:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   61 |     for (int i=0;i<lmao.size();i++) cout << lmao[i] << " " ;
      |                  ~^~~~~~~~~~~~
subsequence.cpp:49:27: warning: iteration 1024 invokes undefined behavior [-Waggressive-loop-optimizations]
   49 |             dp[i2][rt][kk]=max(kq[i],dp[i2][rt][kk]);
      |             ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
subsequence.cpp:45:25: note: within this loop
   45 |         for (int i2=0;i2<=(1<<10);i2++)
      |                       ~~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...