QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#272033 | #6407. Classical A+B Problem | ucup-team859# | WA | 1ms | 3544kb | C++14 | 3.8kb | 2023-12-02 15:46:05 | 2023-12-02 15:46:06 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
using namespace chrono;
using ll = long long;
using ull = unsigned long long;
string to_string(const string &s) {
return '"' + s + '"';
}
string to_string(bool b) {
return b ? "true" : "false";
}
template <typename A, typename B>
string to_string(const pair<A, B> &p) {
return "(" + to_string(p.first) + ", " + to_string(p.second) + ")";
}
template <typename T>
string to_string(const T &v) {
string s = "{";
bool first = true;
for (const auto &it : v) {
if (!first)
s += ", ";
else
first = false;
s += to_string(it);
}
return s += "}";
}
void debug_out() {
cerr << endl;
}
template <typename T, typename... Args>
void debug_out(const T &first, const Args&... rest) {
cerr << to_string(first) << " ";
debug_out(rest...);
}
#define debug(...) cerr << "[" << #__VA_ARGS__ << "]:", debug_out(__VA_ARGS__)
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
auto startTime = high_resolution_clock::now();
int get_time() {
auto stopTime = chrono::high_resolution_clock::now();
auto duration = duration_cast<milliseconds>(stopTime - startTime);
return duration.count(); // in ms
}
void print_cif(int x, int n) {
for (int i = 0; i < n; ++i)
cout << x;
}
void print_cifs(int x, int n, int y, int n2) {
print_cif(x, n);
cout << " ";
print_cif(y, n2);
cout << '\n';
}
void solve() {
string s;
cin >> s;
if (s.size() == 1) {
int x = s[0] - '0';
cout << 1 << " " << x - 1 << '\n';
return;
}
if (s.size() <= 6) {
int sum = 0;
for (int i = 0; i < s.size(); ++i)
sum = sum * 10 + s[i] - '0';
for (int x = 1; x <= 9; ++x) {
int a = 0;
for (int l1 = 1; l1 <= s.size(); ++l1) {
a = a * 10 + x;
for (int y = 1; y <= 9; ++y) {
int b = 0;
for (int l2 = 1; l2 <= s.size(); ++l2) {
b = b * 10 + y;
if (a + b == sum) {
cout << a << " " << b << '\n';
return;
}
}
}
}
}
}
vector<pair<int, int>> v;
for (int i = 0; i < s.size(); ++i) {
if (i + 1 == s.size() || s[i + 1] != s[i])
v.push_back({s[i] - '0', i});
}
if (v.size() == 1) {
int x = s[0] - '0';
print_cifs(1, s.size(), x - 1, s.size());
return;
}
if (v.size() == 2) {
if (s[0] == '1' && s[1] == '0') {
print_cif(9, s.size() - 1);
cout << " ";
print_cif(1, 1);
cout << '\n';
return;
}
int sum = v.back().first;
int x = s[0] - '0';
int y = sum - x;
print_cifs(x, s.size(), y, s.size() - v[0].second - 1);
return;
}
if (v[0].first == 1 && v[1].first == 0) {
int sum = v.back().first + 10;
int x = 9;
int y = sum - 9;
print_cifs(x, s.size() - 1, y, s.size() - v[1].second - 1);
return;
}
if (v[0].first == 1) {
int sum = v.back().first + 10;
int x = 9;
int y = sum - 9;
print_cifs(x, s.size() - 1, y, s.size() - 1);
return;
}
if (v.size() == 4) {
int sum = v.back().first + 10;
int x = v[0].first;
int y = sum - x;
print_cifs(x, s.size(), y, s.size() - v[1].second - 1);
return;
}
if (s[0] != s[1]) {
int x = v[0].first - 1;
int y = v.back().first - x;
if (y < 0)
y += 10;
print_cifs(x, s.size(), y, s.size() - 1);
return;
}
if (s[s.size() - 1] != s[s.size() - 2]) {
int x = v[0].first;
int y = v.back().first - x;
if (y < 0)
y += 10;
print_cifs(x, s.size(), y, 1);
return;
}
assert(1 == 0);
}
int main() {
cin.tie(NULL);
ios_base::sync_with_stdio(false);
int t = 1;
cin >> t;
while (t--)
solve();
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 3544kb
input:
6 2 786 1332 89110 2333333 10000000000000000000000000001
output:
1 1 777 9 333 999 222 88888 2222222 111111 9999999999999999999999999999 2
result:
ok ok (6 test cases)
Test #2:
score: 0
Accepted
time: 1ms
memory: 3508kb
input:
100 854 77777777781111111111111111110 44444450 11111111111111333 2310 5 333333333333333333333343332 888999 10 11113333 335 77779 88888888888888888888889111111111111111111110 55555555555555777777 72222222222222222222221 666 5777 1111555555 444444444544444444443 88888888888891111111111110 673332 97 77...
output:
77 777 77777777777777777777777777777 3333333333333333333 44444444 6 11111111111111111 222 2222 88 1 4 333333333333333333333333333 9999 111 888888 1 9 11111111 2222 2 333 2 77777 88888888888888888888888888888888888888888888 222222222222222222222 55555555555555555555 222222 66666666666666666666666 555...
result:
ok ok (100 test cases)
Test #3:
score: -100
Wrong Answer
time: 1ms
memory: 3512kb
input:
1000 999999 1199 888891 33333333344 6 55555633333333333333333333333333332 444999 333333333333333343333332 10000000055554 76666666666666666666666665 2310 55555633332 166666666666666 111111111111111888888888888888888 891 8888889333333333332 7 555555556666666666 22266666666666 7778554 667 5555555556222...
output:
111111 888888 1111 88 3 888888 33333333333 11 1 5 55555555555555555555555555555555555 77777777777777777777777777777 444444 555 333333333333333333333333 9999999 9999999999999 55555 66666666666666666666666666 9999999999999999999999999 2222 88 55555555555 77777 111111111111111 55555555555555 1111111111...
result:
wrong answer x + y != n (test case 96)