Submission #1251359

#TimeUsernameProblemLanguageResultExecution timeMemory
1251359woohyun_jngSequence (BOI14_sequence)C++20
0 / 100
1093 ms2156 KiB
#include <bits/stdc++.h> using namespace std; const int MAX = 100001; const string BASE = string(MAX, '9'); string solve(vector<int> &arr) { int X = 0, Z = 0, K; string Y, ans = BASE; vector<int> tmp; for (int i : arr) X |= i; if (X == 0 || arr.empty()) return ""; if (arr.size() == 1) { for (int i = 0; i < 10; i++) if (arr[0] & (1 << i)) tmp.push_back(i); sort(tmp.begin(), tmp.end()), ans = ""; if (tmp.size() == 1 && tmp[0] == 0) return "10"; if (tmp[0] == 0) tmp.erase(tmp.begin()), Z = 1; for (int i : tmp) { ans += to_string(i); if (Z) ans += '0', Z = 0; } return ans; } for (int i = 0; i < 10; i++) { tmp.clear(), X = Z = 0; for (int j = 0; j < arr.size(); j++) { K = (i + j) % 10; if (K == 0 && j != 0) tmp.push_back(X), X = 0; X |= (1023 ^ (1 << K)) & arr[j], Z += (arr[j] & (1 << K)) >> K; } if (!Z) continue; tmp.push_back(X), Y = solve(tmp) + to_string(i); if (i == 0 && Y.size() == 1) Y = "1" + Y; if (Y.size() < ans.size() || (Y.size() == ans.size() && Y < ans)) ans = Y; } return ans; } signed main() { ios_base::sync_with_stdio(false); cin.tie(0), cout.tie(0); int N, B; vector<int> arr; cin >> N; for (int i = 0; i < N; i++) cin >> B, arr.push_back(1 << B); cout << solve(arr) << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...