Submission #19335207
Source Code Expand
Copy
#define LOCAL
#define _USE_MATH_DEFINES
#include <array>
#include <cassert>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <iomanip>
#include <string>
#include <sstream>
#include <vector>
#include <queue>
#include <stack>
#include <list>
#include <set>
#include <map>
#include <unordered_set>
#include <unordered_map>
#include <algorithm>
#include <complex>
#include <cmath>
#include <numeric>
#include <bitset>
#include <functional>
#include <random>
#include <ctime>
using namespace std;
template <typename A, typename B>
ostream& operator <<(ostream& out, const pair<A, B>& a) {
out << "(" << a.first << "," << a.second << ")";
return out;
}
template <typename T, size_t N>
ostream& operator <<(ostream& out, const array<T, N>& a) {
out << "["; bool first = true;
for (auto& v : a) { out << (first ? "" : ", "); out << v; first = 0;} out << "]";
return out;
}
template <typename T>
ostream& operator <<(ostream& out, const vector<T>& a) {
out << "["; bool first = true;
for (auto& v : a) { out << (first ? "" : ", "); out << v; first = 0;} out << "]";
return out;
}
template <typename T, class Cmp>
ostream& operator <<(ostream& out, const set<T, Cmp>& a) {
out << "{"; bool first = true;
for (auto& v : a) { out << (first ? "" : ", "); out << v; first = 0;} out << "}";
return out;
}
template <typename U, typename T, class Cmp>
ostream& operator <<(ostream& out, const map<U, T, Cmp>& a) {
out << "{"; bool first = true;
for (auto& p : a) { out << (first ? "" : ", "); out << p.first << ":" << p.second; first = 0;} out << "}";
return out;
}
#ifdef LOCAL
#define trace(...) __f(#__VA_ARGS__, __VA_ARGS__)
#else
#define trace(...) 42
#endif
template <typename Arg1>
void __f(const char* name, Arg1&& arg1){
cerr << name << ": " << arg1 << endl;
}
template <typename Arg1, typename... Args>
void __f(const char* names, Arg1&& arg1, Args&&... args){
const char* comma = strchr(names + 1, ',');
cerr.write(names, comma - names) << ": " << arg1 << " |";
__f(comma + 1, args...);
}
typedef long long int64;
typedef pair<int64, int64> ii;
#define SZ(x) (int)((x).size())
template <typename T> static constexpr T inf = numeric_limits<T>::max() / 2;
const int MOD = 1e9 + 7;
mt19937 mrand(random_device{}());
int rnd(int x) { return mrand() % x; }
struct fast_ios {
fast_ios() {
cin.tie(nullptr);
ios::sync_with_stdio(false);
cout << fixed << setprecision(10);
};
} fast_ios_;
map<ii, int64> cache;
int64 solve(int64 y, int64 x) {
// trace(y, x);
ii cur = {y, x};
auto it = cache.find(cur);
if (it != cache.end()) return it->second;
int64 ret = inf<int64>;
if (y <= x) {
return cache[cur] = x - y;
}
if (y % 2 == 0) {
ret = min(ret, y - x);
ret = min(ret, 1 + solve(y / 2, x));
} else {
ret = min(ret, 1 + solve(y + 1, x));
ret = min(ret, 1 + solve(y - 1, x));
}
// trace(cur, ret);
return cache[cur] = ret;
}
int main() {
int64 x, y;
cin >> x >> y;
int64 ret = solve(y, x);
cout << ret << '\n';
return 0;
}
Submission Info
Submission Time |
|
Task |
F - +1-1x2 |
User |
cuiaoxiang |
Language |
C++ (Clang 10.0.0) |
Score |
600 |
Code Size |
3153 Byte |
Status |
AC |
Exec Time |
7 ms |
Memory |
3232 KB |
Compile Error
./Main.cpp:79:11: warning: unused variable 'MOD' [-Wunused-const-variable]
const int MOD = 1e9 + 7;
^
1 warning generated.
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
600 / 600 |
Status |
|
|
Set Name |
Test Cases |
Sample |
sample_01.txt, sample_02.txt, sample_03.txt |
All |
extreme_00.txt, extreme_01.txt, extreme_02.txt, extreme_03.txt, extreme_04.txt, handmade_00.txt, handmade_01.txt, handmade_02.txt, handmade_03.txt, handmade_04.txt, random_00.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_exp_00.txt, random_exp_01.txt, random_exp_02.txt, random_exp_03.txt, random_exp_04.txt, random_exp_05.txt, random_exp_06.txt, random_exp_07.txt, random_exp_08.txt, random_exp_09.txt, random_exp_10.txt, random_exp_11.txt, random_exp_12.txt, random_exp_13.txt, random_exp_14.txt, random_exp_15.txt, random_small_00.txt, random_small_01.txt, random_small_02.txt, random_small_03.txt, random_small_04.txt, random_small_05.txt, random_small_06.txt, random_small_07.txt, random_small_08.txt, random_small_09.txt, sample_01.txt, sample_02.txt, sample_03.txt |
Case Name |
Status |
Exec Time |
Memory |
extreme_00.txt |
AC |
7 ms |
3156 KB |
extreme_01.txt |
AC |
2 ms |
3148 KB |
extreme_02.txt |
AC |
2 ms |
3180 KB |
extreme_03.txt |
AC |
2 ms |
3144 KB |
extreme_04.txt |
AC |
2 ms |
3044 KB |
handmade_00.txt |
AC |
2 ms |
3160 KB |
handmade_01.txt |
AC |
2 ms |
3028 KB |
handmade_02.txt |
AC |
2 ms |
3104 KB |
handmade_03.txt |
AC |
2 ms |
3032 KB |
handmade_04.txt |
AC |
3 ms |
3016 KB |
random_00.txt |
AC |
2 ms |
3156 KB |
random_01.txt |
AC |
2 ms |
3152 KB |
random_02.txt |
AC |
2 ms |
3004 KB |
random_03.txt |
AC |
2 ms |
3056 KB |
random_04.txt |
AC |
2 ms |
3008 KB |
random_05.txt |
AC |
3 ms |
3112 KB |
random_06.txt |
AC |
3 ms |
3148 KB |
random_07.txt |
AC |
2 ms |
3060 KB |
random_08.txt |
AC |
2 ms |
3016 KB |
random_09.txt |
AC |
2 ms |
3012 KB |
random_exp_00.txt |
AC |
3 ms |
3092 KB |
random_exp_01.txt |
AC |
2 ms |
3148 KB |
random_exp_02.txt |
AC |
2 ms |
3060 KB |
random_exp_03.txt |
AC |
2 ms |
3048 KB |
random_exp_04.txt |
AC |
2 ms |
3108 KB |
random_exp_05.txt |
AC |
3 ms |
3164 KB |
random_exp_06.txt |
AC |
2 ms |
3160 KB |
random_exp_07.txt |
AC |
2 ms |
3104 KB |
random_exp_08.txt |
AC |
2 ms |
3092 KB |
random_exp_09.txt |
AC |
2 ms |
3092 KB |
random_exp_10.txt |
AC |
2 ms |
3024 KB |
random_exp_11.txt |
AC |
2 ms |
3112 KB |
random_exp_12.txt |
AC |
2 ms |
3232 KB |
random_exp_13.txt |
AC |
3 ms |
3108 KB |
random_exp_14.txt |
AC |
2 ms |
3148 KB |
random_exp_15.txt |
AC |
2 ms |
3156 KB |
random_small_00.txt |
AC |
2 ms |
3028 KB |
random_small_01.txt |
AC |
3 ms |
3016 KB |
random_small_02.txt |
AC |
2 ms |
3032 KB |
random_small_03.txt |
AC |
2 ms |
3148 KB |
random_small_04.txt |
AC |
2 ms |
3104 KB |
random_small_05.txt |
AC |
2 ms |
3012 KB |
random_small_06.txt |
AC |
2 ms |
3020 KB |
random_small_07.txt |
AC |
2 ms |
3196 KB |
random_small_08.txt |
AC |
2 ms |
3168 KB |
random_small_09.txt |
AC |
2 ms |
3048 KB |
sample_01.txt |
AC |
2 ms |
3108 KB |
sample_02.txt |
AC |
4 ms |
3016 KB |
sample_03.txt |
AC |
2 ms |
3104 KB |