QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#330769 | #8058. Binary vs Ternary | ucup-team1600# | WA | 1ms | 3560kb | C++20 | 2.3kb | 2024-02-17 18:53:05 | 2024-02-17 18:53:06 |
Judging History
answer
//#pragma GCC optimize("Ofast", "unroll-loops")
//#pragma GCC target("sse", "sse2", "sse3", "ssse3", "sse4")
#include <bits/stdc++.h>
#define all(a) a.begin(),a.end()
#define len(a) (int)(a.size())
#define mp make_pair
#define pb push_back
#define fir first
#define sec second
#define fi first
#define se second
using namespace std;
typedef pair<int, int> pii;
typedef long long ll;
typedef long double ld;
template<typename T>
bool umin(T &a, T b) {
if (b < a) {
a = b;
return true;
}
return false;
}
template<typename T>
bool umax(T &a, T b) {
if (a < b) {
a = b;
return true;
}
return false;
}
#ifdef KIVI
#define DEBUG for (bool _FLAG = true; _FLAG; _FLAG = false)
#define LOG(...) print(#__VA_ARGS__" ::", __VA_ARGS__) << endl
template <class ...Ts> auto &print(Ts ...ts) { return ((cerr << ts << " "), ...); }
#else
#define DEBUG while (false)
#define LOG(...)
#endif
const int max_n = -1, inf = 1000111222;
inline void test_case () {
string a, b;
cin >> a >> b;
if (a == b) {
cout << "0\n";
return;
}
if (len(a) == 1 || len(b) == 1) {
cout << "-1\n";
return;
}
int n = len(a);
vector <pii> ans;
auto op = [&] (int l, int r) {
ans.pb({l, r});
};
for (int i = 1; i < n; i++) {
if (a[i] == '0') {
a[i] = '1';
op(i - 1, i);
}
}
while (n > len(b)) {
op(n - 2, n - 1);
op(n - 3, n - 2);
op(n - 2, n - 1);
op(n - 3, n - 2);
--n;
a.pop_back();
}
while (n < len(b)) {
op(n - 2, n - 1);
op(n - 2, n - 1);
op(n - 1, n);
++n;
a += '1';
}
assert(n == len(b));
for (int i = n - 1; i >= 0; i--) {
if (b[i] == '0') {
op(i - 1, i);
op(i, i + 1);
}
}
cout << len(ans) << '\n';
for (auto &i : ans) {
cout << i.first + 1 << ' ' << i.second + 1 << '\n';
}
}
int main() {
// freopen("input.txt", "r", stdin);
// freopen("output.txt", "w", stdout);
ios_base::sync_with_stdio(0);
cin.tie(0);
int t = 1;
cin >> t;
for (int test = 1; test <= t; test++) {
test_case();
}
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 3532kb
input:
3 1 111 110110 1101010 1111 111111
output:
-1 11 2 3 5 6 5 6 5 6 6 7 6 7 7 8 4 5 5 6 2 3 3 4 6 3 4 3 4 4 5 4 5 4 5 5 6
result:
ok Haitang Suki (3 test cases)
Test #2:
score: -100
Wrong Answer
time: 1ms
memory: 3560kb
input:
1000 11100 111 1 11110 10001 10 1011 1111 10 1110 1100 11 11010 11 110 11 1 10001 10110 10 10 11111 10000 1001 10 1 11 10111 11 10 1 100 11 10100 1 10 101 11 1100 110 11 1110 1 1001 1 11111 10 10010 10 11001 110 1010 10011 1110 10100 1001 1001 101 100 1 1001 11 101 11 101 1001 1 1 1011 1 10 10 1011 ...
output:
10 3 4 4 5 4 5 3 4 4 5 3 4 3 4 2 3 3 4 2 3 -1 17 1 2 2 3 3 4 4 5 3 4 4 5 3 4 3 4 2 3 3 4 2 3 2 3 1 2 2 3 1 2 1 2 2 3 1 1 2 9 1 2 1 2 1 2 2 3 2 3 2 3 3 4 3 4 4 5 10 2 3 3 4 3 4 2 3 3 4 2 3 2 3 1 2 2 3 1 2 14 2 3 4 5 4 5 3 4 4 5 3 4 3 4 2 3 3 4 2 3 2 3 1 2 2 3 1 2 5 2 3 2 3 1 2 2 3 1 2 -1 16 1 2 4 5 4...
result:
wrong answer S!=T after all operations (test case 1)