Submission #427294

#TimeUsernameProblemLanguageResultExecution timeMemory
427294kai824City (JOI17_city)C++17
8 / 100
359 ms21872 KiB
#include "Encoder.h"
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

vector<int> adjl[250005];

void dfs(int node,ll bits,int p=-1){
	Code(node,bits);
	int sz=adjl[node].size();
	if(p!=-1)sz--;
	int j=0;
	while((1ll<<j)<sz)j++;
	bits*=2*(1ll<<j);
	for(int x:adjl[node]){
		if(x==p)continue;
		dfs(x,bits,node);
		bits++;
	}
}

void Encode(int n, int a[], int b[]){
	for(int i=0;i+1<n;i++){
		adjl[a[i]].push_back(b[i]);
		adjl[b[i]].push_back(a[i]);
	}
	dfs(0,1);
	//Code(i, 0LL): node, label...
}
#include "Device.h"
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

void InitDevice(){}

int Answer(long long s, long long t){
	vector<int> v1,v2;
	while(s>0){
		v1.push_back(s&1);
		s>>=1;
	}
	while(t>0){
		v2.push_back(t&1);
		t>>=1;
	}
	reverse(v1.begin(),v1.end());
	reverse(v2.begin(),v2.end());
	//for(int x:v1)cout<<x;cout<<'\n';
	//for(int x:v2)cout<<x;cout<<'\n';

	for(int i=0;i<v1.size() && i<v2.size();i++){
		if(v1[i]!=v2[i])return 2;
	}
	if(v1.size()<v2.size())return 1;
	else return 0;
}

Compilation message (stderr)

Device.cpp: In function 'int Answer(long long int, long long int)':
Device.cpp:23:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   23 |  for(int i=0;i<v1.size() && i<v2.size();i++){
      |              ~^~~~~~~~~~
Device.cpp:23:30: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   23 |  for(int i=0;i<v1.size() && i<v2.size();i++){
      |                             ~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...