제출 #527784

#제출 시각아이디문제언어결과실행 시간메모리
527784rsjwLongest beautiful sequence (IZhO17_subsequence)C++14
컴파일 에러
0 ms0 KiB
#include <cstdio>
#include <algorithm>
const int maxcount = 10;
const int mask = 1 << maxcount;
const int maxn = 100005;
using namespace std;
int cnt[mask];
int a[maxn],k[maxn];
int f[mask][mask][maxcount+1];
int id[mask][mask][maxcount+1];
int last[maxn];
int n;
vector<int> sol;
int main() {
	//freopen("1.in","r",stdin);
	scanf("%d",&n);
	for(int i=1; i<mask; i++) cnt[i]=cnt[i>>1]+(i&1);
	for(int i=1; i<=n; i++) scanf("%d",&a[i]);
	for(int i=1; i<=n; i++) scanf("%d",&k[i]);
	int ans,cur0,cur1,bc;
	int maxid,maxn=0;
	for(int i=1; i<=n; i++) {
		cur0=(a[i])>>maxcount,cur1=(a[i])&(mask-1);
		ans=0;
		for(int pre1=0;pre1<mask;pre1++) {
			bc=k[i]-cnt[pre1&cur1];
			if(ans<=f[pre1][cur0][bc]) ans=f[pre1][cur0][bc]+1,last[i]=id[pre1][cur0][bc];
		}
		for(int nex0=0;nex0<mask;nex0++) {
			bc=cnt[nex0&cur0];
			if(ans>f[cur1][nex0][bc]) f[cur1][nex0][bc]=ans,id[cur1][nex0][bc]=i;
		}
		if(maxn<ans) {
			maxn=ans;
			maxid=i;
		}
	}
	int x=maxid;
	while(x) sol.push_back(x),x=last[x];
	sort(sol.begin(),sol.end());
	printf("%d\n",(int)sol.size());
	for(auto i:sol) {
		printf("%d ",i);
	}
	return 0;
}

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

subsequence.cpp:13:1: error: 'vector' does not name a type
   13 | vector<int> sol;
      | ^~~~~~
subsequence.cpp: In function 'int main()':
subsequence.cpp:39:11: error: 'sol' was not declared in this scope
   39 |  while(x) sol.push_back(x),x=last[x];
      |           ^~~
subsequence.cpp:40:7: error: 'sol' was not declared in this scope
   40 |  sort(sol.begin(),sol.end());
      |       ^~~
subsequence.cpp:16:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   16 |  scanf("%d",&n);
      |  ~~~~~^~~~~~~~~
subsequence.cpp:18:31: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   18 |  for(int i=1; i<=n; i++) scanf("%d",&a[i]);
      |                          ~~~~~^~~~~~~~~~~~
subsequence.cpp:19:31: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   19 |  for(int i=1; i<=n; i++) scanf("%d",&k[i]);
      |                          ~~~~~^~~~~~~~~~~~