0x00 Link
-
Source
-AtCoder
-
Tag
-芝士水题
-
Time
- ∗ * ∗
0x01 Source Code
//
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
#define IOS ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
void solve() {
string s;
cin >> s;
reverse(s.begin(), s.end()); //
int n;
cin >> n;
int ans = 0;
for (int i = s.size() - 1; i >= 0; i--) {
ans |= (int)(s[i] == '1') << i; // LL
}
if (ans > n) {
cout << -1 << endl;
return ;
}
for (int i = s.size() - 1; i >= 0; i--) {
if (s[i] == '?' && (ans | (1LL << i)) <= n) { // 按位的优先级超级低
ans |= (1LL << i); // 1LL
}
}
cout << ans << endl;
}
signed main() {
IOS
int t = 1;
// cin >> t;
while (t--) solve();
return 0;
}
0x10 Diagram
-
404
0x11 Reference
作者 | 乐意奥AI