Submission #1140996

#TimeUsernameProblemLanguageResultExecution timeMemory
1140996dpsaveslivesSequence (BOI14_sequence)C++20
100 / 100
107 ms1356 KiB
#include <bits/stdc++.h> #define ll long long using namespace std; ll calc(vector<int> arr, int ok){ ll ret = 102345678900000L; if(arr.size() > 1){ for(int d = 0;d<9+ok;++d){ int y = d, cur = 0; bool zero = false; vector<int> B; for(int i = 0;i<arr.size();++i){ int x = arr[i]; cur |= (x&(1023-(1<<y))); if(x & 1 && y == 0) zero = true; y = (y+1)%10; if(!y || i == arr.size()-1){ B.push_back(cur); cur = 0; } } ll val = calc(B,(arr.size() >= 3 || d < 9))*10+d; if(!val && zero) val = 10; ret = min(ret,val); } return ret; } else{ ret = 0; for(int i = 1;i<=9;++i){ if(arr[0]&(1<<i)){ ret = (ret*10)+i; if(ret == i && arr[0]&1) ret *= 10; } } if(ret == 0 && arr[0]&1) ret = 10; return ret; } } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int K; cin >> K; vector<int> arr; for(int i = 0;i<K;++i){ int b; cin >> b; arr.push_back((1<<b)); } cout << calc(arr,1) << "\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...