QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#272033#6407. Classical A+B Problemucup-team859#WA 1ms3544kbC++143.8kb2023-12-02 15:46:052023-12-02 15:46:06

Judging History

你现在查看的是最新测评结果

  • [2023-12-02 15:46:06]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:3544kb
  • [2023-12-02 15:46:05]
  • 提交

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;
}

詳細信息

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)