Submission #538396

# Submission time Handle Problem Language Result Execution time Memory
538396 2022-03-16T18:02:59 Z jamielim Speedrun (RMI21_speedrun) C++14
Compilation error
0 ms 0 KB
#include "speedrun.h"
#include <bits/stdc++.h>
using namespace std;

#define pb emplace_back

int n;
vector<int> adj[1005];
int par[1005];
vector<int> ord;
int c[1005];

void dfs(int x){
	ord.pb(x);
	for(int i:adj[x]){
		if(par[x]==i)continue;
		par[i]=x;
		dfs(i);
	}
}

void assignHints(int subtask, int N, int A[], int B[]) {
	n=N;
	for(int i=0;i<n-1;i++){
		adj[A[i]].pb(B[i]);
		adj[B[i]].pb(A[i]);
	}
	dfs(1);
	for(int i=0;i<n-1;i++){
		c[ord[i]]=ord[i+1];
	}
	c[ord[n-1]]=1;
	setHintLen(20);
	for(int i=1;i<=n;i++){
		for(int j=1;j<=10;j++){
			if(par[i]&(1<<(j-1)))setHint(i,j,1);
			else setHint(i,j,0);
		}
		for(int j=11;j<=20;j++){
			if(c[i]&(1<<(j-11)))setHint(i,j,1);
			else setHint(i,j,0);
		}
	}
}


int getParent(){
	int ans=0;
	for(int i=1;i<=10;i++){
		ans+=getHint(i)*(1<<(i-1));
	}
	return ans;
}
int getNext(){
	int ans=0;
	for(int i=11;i<=20;i++){
		ans+=getHint(i)*(1<<(i-11));
	}
	return ans;
}
void speedrun(int subtask, int N, int start) {
	memset(par,0,sizeof(par));
	memset(c,0,sizeof(c));
	int cur=start;
	par[cur]=getParent();
	c[cur]=getNext();
	set<int> done;
	done.insert(cur);
	while(SZ(done)<n){ // not yet completed loop
		int nxt=c[cur];
		while(!goTo(nxt)){
			goTo(par[cur]);
			cur=par[cur];
			par[cur]=getParent();
			c[cur]=getNext();
			done.insert(cur);
		}
		// reached the next thing in the order
		cur=nxt;
		par[cur]=getParent();
		c[cur]=getNext();
		done.insert(cur);
	}
}

Compilation message

speedrun.cpp: In function 'void speedrun(int, int, int)':
speedrun.cpp:69:8: error: 'SZ' was not declared in this scope
   69 |  while(SZ(done)<n){ // not yet completed loop
      |        ^~