Submission #647463

# Submission time Handle Problem Language Result Execution time Memory
647463 2022-10-02T16:05:25 Z ghostwriter Palindrome-Free Numbers (BOI13_numbers) C++14
31.6667 / 100
1000 ms 352 KB
#include <bits/stdc++.h>
using namespace std;
#ifdef LOCAL
#include <debug.h>
#else
#define debug(...)
#endif
#define ft front
#define bk back
#define st first
#define nd second
#define ins insert
#define ers erase
#define pb push_back
#define pf push_front
#define _pb pop_back
#define _pf pop_front
#define lb lower_bound
#define ub upper_bound
#define mtp make_tuple
#define bg begin
#define ed end
#define all(x) (x).bg(), (x).ed()
#define sz(x) (int)(x).size()
typedef long long ll; typedef unsigned long long ull;
typedef double db; typedef long double ldb;
typedef pair<int, int> pi; typedef pair<ll, ll> pll;
typedef vector<int> vi; typedef vector<ll> vll; typedef vector<pi> vpi; typedef vector<pll> vpll;
typedef string str;
template<typename T> T gcd(T a, T b) { return (b == 0? a : gcd(b, a % b)); }
template<typename T> T lcm(T a, T b) { return a / gcd(a, b) * b; }
#define FOR(i, l, r) for (int (i) = (l); (i) <= (r); ++(i))
#define FOS(i, r, l) for (int (i) = (r); (i) >= (l); --(i))
#define FRN(i, n) for (int (i) = 0; (i) < (n); ++(i))
#define FSN(i, n) for (int (i) = (n) - 1; (i) >= 0; --(i))
#define EACH(i, x) for (auto &(i) : (x))
#define WHILE while
#define file "TEST"
mt19937 rd(chrono::steady_clock::now().time_since_epoch().count());
ll rand(ll l, ll r) { return uniform_int_distribution<ll>(l, r)(rd); }
/*
----------------------------------------------------------------
    END OF TEMPLATE
----------------------------------------------------------------
    Tran The Bao - ghostwriter
    Training for VOI23 gold medal
----------------------------------------------------------------
    DIT ME CHUYEN BAO LOC
----------------------------------------------------------------
*/
ll a, b;
int rs = 0;
vi todi(ll n) {
	vi ans;
	WHILE(n) {
		ans.pb(n % 10);
		n /= 10;
	}
	reverse(all(ans));
	return ans;
}
bool check(ll n) {
	vi di = todi(n);
	int m = sz(di);
	FRN(i, m - 1)
		if (di[i] == di[i + 1])
			return 0;
	FRN(i, m - 2)
		if (di[i] == di[i + 2])
			return 0;
	return 1;
}
signed main() {
    ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    // freopen(file".inp", "r", stdin);
    // freopen(file".out", "w", stdout);
    cin >> a >> b;
    WHILE(a <= b) if (check(a++)) ++rs;
    cout << rs;
    return 0;
}
/*
----------------------------------------------------------------
From Benq:
    stuff you should look for
        * int overflow, array bounds
        * special cases (n=1?)
        * do smth instead of nothing and stay organized
        * WRITE STUFF DOWN
        * DON'T GET STUCK ON ONE APPROACH
----------------------------------------------------------------
*/

Compilation message

numbers.cpp: In function 'bool check(ll)':
numbers.cpp:34:28: warning: unnecessary parentheses in declaration of 'i' [-Wparentheses]
   34 | #define FRN(i, n) for (int (i) = 0; (i) < (n); ++(i))
      |                            ^
numbers.cpp:65:2: note: in expansion of macro 'FRN'
   65 |  FRN(i, m - 1)
      |  ^~~
numbers.cpp:34:28: warning: unnecessary parentheses in declaration of 'i' [-Wparentheses]
   34 | #define FRN(i, n) for (int (i) = 0; (i) < (n); ++(i))
      |                            ^
numbers.cpp:68:2: note: in expansion of macro 'FRN'
   68 |  FRN(i, m - 2)
      |  ^~~
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 19 ms 212 KB Output is correct
4 Correct 12 ms 328 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 0 ms 212 KB Output is correct
10 Correct 0 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 0 ms 212 KB Output is correct
13 Correct 1 ms 212 KB Output is correct
14 Correct 11 ms 352 KB Output is correct
15 Correct 12 ms 212 KB Output is correct
16 Correct 1 ms 212 KB Output is correct
17 Correct 4 ms 316 KB Output is correct
18 Correct 0 ms 212 KB Output is correct
19 Correct 19 ms 212 KB Output is correct
20 Correct 12 ms 324 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 1048 ms 316 KB Time limit exceeded
2 Execution timed out 1087 ms 212 KB Time limit exceeded
3 Execution timed out 1094 ms 212 KB Time limit exceeded
4 Execution timed out 1064 ms 212 KB Time limit exceeded
5 Execution timed out 1095 ms 212 KB Time limit exceeded
6 Execution timed out 1099 ms 212 KB Time limit exceeded
7 Correct 388 ms 308 KB Output is correct
8 Correct 277 ms 300 KB Output is correct
9 Correct 503 ms 300 KB Output is correct
10 Correct 705 ms 332 KB Output is correct
11 Execution timed out 1040 ms 304 KB Time limit exceeded
12 Execution timed out 1100 ms 212 KB Time limit exceeded
13 Execution timed out 1082 ms 300 KB Time limit exceeded
14 Execution timed out 1096 ms 212 KB Time limit exceeded
15 Execution timed out 1088 ms 212 KB Time limit exceeded
16 Execution timed out 1097 ms 212 KB Time limit exceeded
17 Execution timed out 1089 ms 212 KB Time limit exceeded
18 Execution timed out 1095 ms 212 KB Time limit exceeded
19 Execution timed out 1090 ms 212 KB Time limit exceeded
20 Execution timed out 1099 ms 212 KB Time limit exceeded
21 Execution timed out 1077 ms 212 KB Time limit exceeded
22 Execution timed out 1095 ms 212 KB Time limit exceeded
23 Execution timed out 1094 ms 212 KB Time limit exceeded
24 Execution timed out 1097 ms 212 KB Time limit exceeded
25 Execution timed out 1098 ms 212 KB Time limit exceeded
26 Execution timed out 1093 ms 212 KB Time limit exceeded
27 Execution timed out 1100 ms 212 KB Time limit exceeded
28 Execution timed out 1095 ms 212 KB Time limit exceeded
29 Execution timed out 1098 ms 212 KB Time limit exceeded
30 Execution timed out 1098 ms 212 KB Time limit exceeded
31 Execution timed out 1092 ms 212 KB Time limit exceeded
32 Execution timed out 1093 ms 212 KB Time limit exceeded
33 Execution timed out 1099 ms 212 KB Time limit exceeded
34 Execution timed out 1092 ms 212 KB Time limit exceeded
35 Execution timed out 1098 ms 212 KB Time limit exceeded
36 Execution timed out 1095 ms 212 KB Time limit exceeded
37 Execution timed out 1094 ms 212 KB Time limit exceeded
38 Execution timed out 1093 ms 212 KB Time limit exceeded
39 Execution timed out 1088 ms 212 KB Time limit exceeded
40 Execution timed out 1091 ms 212 KB Time limit exceeded
41 Execution timed out 1089 ms 212 KB Time limit exceeded
42 Execution timed out 1076 ms 212 KB Time limit exceeded
43 Execution timed out 1097 ms 212 KB Time limit exceeded
44 Execution timed out 1095 ms 212 KB Time limit exceeded
45 Execution timed out 1082 ms 212 KB Time limit exceeded