# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
824774 | QwertyPi | 수열 (BOI14_sequence) | C++14 | 118 ms | 3184 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int MAXK = 1e5 + 11;
char c[MAXK];
int query(int base, bool geq1, bool prv2, int pw10, vector<int> a){
if(a.size() == 1){
if(a[0] == 0 && base == 0) return pw10;
if(a[0] == 0 && geq1) return pw10 + base;
if(a[0] == 0) return base;
if(a[0] == 1) return 10 * pw10 + base;
if(a[0] & 1){
int fi = 1; while(!(a[0] & (1 << fi))) fi++;
int r = fi * 10;
for(int i = fi + 1; i < 10; i++) if(a[0] & (1 << i)) r = r * 10 + i;
return r * pw10 + base;
}else{
int r = 0; for(int i = 1; i < 10; i++) if(a[0] & (1 << i)) r = r * 10 + i;
return r * pw10 + base;
}
}
int res = 1LL << 60;
for(int c0 = 0; c0 <= 9 - prv2; c0++){
vector<int> b {0}; bool n_geq1 = false;
for(int i = 0; i < a.size(); i++){
int g = c0 + i;
if(g > 0 && g % 10 == 0){
b.push_back(0);
}
int v = a[i];
if(c0 == 0 && i == 0 && (a[i] & 1)){
n_geq1 = true;
}
v -= v & (1 << g % 10);
b.back() |= v;
}
res = min(res, query(base + pw10 * c0, n_geq1, a.size() == 2, pw10 * 10, b));
}
return res;
}
int clever(vector<int> a){
return query(0, false, false, 1, a);
}
int cc(int x){
int r = 0;
while(x != 0){
r |= (1 << x % 10);
x /= 10;
}
return r;
}
int brute(vector<int> a){
for(int i = 1;; i++){
bool ok = true;
for(int j = 0; j < a.size(); j++){
ok &= (cc(i + j) & a[j]) == a[j];
}
if(ok) return i;
}
}
int32_t main() {
int n; cin >> n;
for(int i = 0; i < n; i++){
cin >> c[i];
}
if(n == 1){
if(c[0] == '0'){
cout << "10" << endl;
}else{
cout << c[0] << endl;
}
return 0;
}
vector<int> a;
for(int i = 0; i < n; i++){
int st = 1 << (c[i] - '0');
a.push_back(st);
}
int a2 = clever(a);
cout << a2 << endl;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |