| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 467019 | ezdp | Palindrome-Free Numbers (BOI13_numbers) | C++14 | 1 ms | 332 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#pragma GCC target ("sse4")
#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")
#include<bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#define endl '\n'
#define pb push_back
#define fr first
#define sc second
#define ll long long int
#define ld long double
#define bit(idx) idx&(-idx)
#define bin(x) bitset<32>(x).to_string()
#define all(A) A.begin(), A.end()
#define de(x) cout << #x << " = " << x << endl;
using namespace std;
using namespace __gnu_pbds;
template<class T> using oset = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
template<class T> using matrix = vector<vector<T>>;
/// find_by_order(x) -> x-th element in the set
/// order_of_key(x) -> how many elements are smaller than x
/// insert(x) -> inserts x into the set
string n;
int dp[19][11][11][2][2];
ll f(ll len = 0, ll prv1 = 10, ll prv2 = 10, bool flag = 0, bool pass = 0){
if(len == n.size()){
return 1;
}
if(dp[len][prv1][prv2][flag][pass] != -1)
return dp[len][prv1][prv2][flag][pass];
ll ret = 0, limit = (flag ? 9 : n[len] - '0');
for(int dgt = 0; dgt <= limit; dgt ++){
if(dgt == prv1 || dgt == prv2) continue;
bool new_flag = flag;
bool new_pass = pass;
if(dgt < limit) new_flag = true;
if(dgt) new_pass = 1;
ret += f(len + 1, (new_pass ? prv2 : 10), (new_pass ? dgt : 10), new_flag, new_pass);
}
return dp[len][prv1][prv2][flag][pass] = ret;
}
ll s(ll x){
n.clear();
while(x){
n += (char)((x % 10) + '0');
x /= 10;
}
reverse(all(n));
memset(dp, -1, sizeof(dp));
return (n.empty() ? 0 : f());
}
int main(){
/// ios_base::sync_with_stdio(false); cin.tie(NULL);
ll a, b; cin >> a >> b;
cout << (a ? s(b) - s(a - 1) : s(b)) << endl;
}
/**
*/컴파일 시 표준 에러 (stderr) 메시지
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
