Submission #67487

# Submission time Handle Problem Language Result Execution time Memory
67487 2018-08-14T10:46:15 Z reality City (JOI17_city) C++17
8 / 100
187 ms 54832 KB
#include "Encoder.h"
#include "bits/stdc++.h"
using namespace std;
#define fi first
#define se second
#define ll long long
#define dbg(v) cerr<<#v<<" = "<<v<<'\n'
#define vi vector<int>
#define vl vector <ll>
#define pii pair<int,int>
#define vii vector < pii >
#define mp make_pair
#define db long double
#define pb push_back
#define all(s) s.begin(),s.end()
template < class P , class Q > ostream& operator<<(ostream& stream, pair < P , Q > v){ stream << "(" << v.fi << ',' << v.se << ")"; return stream;}
template < class T > ostream& operator<<(ostream& stream, const vector<T> v){ stream << "[ "; for (int i=0; i<(int)v.size(); i++) stream << v[i] << " "; stream << "]"; return stream;}
template < class T > T smin(T &a,T b) {if (a > b) a = b;return a;}
template < class T > T smax(T &a,T b) {if (a < b) a = b;return a;}

static const int N = 1e6;

static const db w = 1.05;

static int len[N];

vi g[N + 69];

static int T = -1;

void dfs(int node = 0,int prev = -1) {
	int beg = ++T;
	for (auto it : g[node])
		if (it != prev)
			dfs(it,node);
	int ln = T - beg;
	int sz = *lower_bound(len,len + 256,ln);
	Code(node,1ll * sz * N + beg);
}


void Encode(int NN, int A[], int B[]) {
	int n = NN;
	for (int i = 0;i + 1 < n;++i) {
		g[A[i]].pb(B[i]);
		g[B[i]].pb(A[i]);
	}
	len[0] = 0;
	len[1] = 1;
	for (int i = 2;i < 256;++i)
		len[i] = max(len[i - 1] + 1,(int)(len[i - 1] * w));
	dfs();
}
#include "Device.h"
#include "bits/stdc++.h"
using namespace std;
#define fi first
#define se second
#define ll long long
#define dbg(v) cerr<<#v<<" = "<<v<<'\n'
#define vi vector<int>
#define vl vector <ll>
#define pii pair<int,int>
#define vii vector < pii >
#define mp make_pair
#define db long double
#define pb push_back
#define all(s) s.begin(),s.end()
template < class P , class Q > ostream& operator<<(ostream& stream, pair < P , Q > v){ stream << "(" << v.fi << ',' << v.se << ")"; return stream;}
template < class T > ostream& operator<<(ostream& stream, const vector<T> v){ stream << "[ "; for (int i=0; i<(int)v.size(); i++) stream << v[i] << " "; stream << "]"; return stream;}
template < class T > T smin(T &a,T b) {if (a > b) a = b;return a;}
template < class T > T smax(T &a,T b) {if (a < b) a = b;return a;}

static const int N = 1e6;

static const db w = 1.05;

static int len[N];

void InitDevice() {
	len[0] = 0;
	len[1] = 1;
	for (int i = 2;i < 256;++i)
		len[i] = max(len[i - 1] + 1,(int)(len[i - 1] * w));
}

int Answer(ll S,ll T) {
	int a = S % N;
	int b = a + len[S / N];
	int c = T % N;
	int d = c + len[T / N];
	if (a <= c && d <= b)
		return 1;
	if (c <= a && b <= d)
		return 0;
	return 2;
}
# Verdict Execution time Memory Grader output
1 Correct 24 ms 47616 KB Output is correct
2 Correct 23 ms 47616 KB Output is correct
3 Correct 24 ms 47856 KB Output is correct
4 Correct 24 ms 47856 KB Output is correct
5 Correct 23 ms 47616 KB Output is correct
6 Correct 23 ms 47592 KB Output is correct
7 Correct 23 ms 47616 KB Output is correct
8 Correct 24 ms 47600 KB Output is correct
9 Correct 24 ms 47600 KB Output is correct
10 Correct 23 ms 47616 KB Output is correct
11 Correct 22 ms 47616 KB Output is correct
12 Correct 24 ms 47560 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 187 ms 54832 KB Wrong Answer [6]
2 Halted 0 ms 0 KB -