結果
| 問題 | No.539 インクリメント |
| コンテスト | |
| ユーザー |
xuzijian629
|
| 提出日時 | 2018-10-31 14:23:04 |
| 言語 | C++17(gcc12) (gcc 12.4.0 + boost 1.89.0) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 1,611 bytes |
| 記録 | |
| コンパイル時間 | 6,069 ms |
| コンパイル使用メモリ | 459,868 KB |
| 実行使用メモリ | 35,456 KB |
| 最終ジャッジ日時 | 2026-06-07 02:47:09 |
| 合計ジャッジ時間 | 10,158 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge1_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 1 TLE * 1 -- * 1 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
using i64 = int64_t;
using vi = vector<i64>;
using vvi = vector<vi>;
#include <boost/multiprecision/cpp_int.hpp>
namespace mp = boost::multiprecision;
int main() {
int n;
cin >> n;
regex re("^(\\D*)(\\d+)(.*)$"), re2("^(0*)([1-9]\\d*)$");
string s;
getline(cin, s);
while (n--) {
getline(cin, s);
reverse(s.begin(), s.end());
smatch m;
if (regex_search(s, m, re)) {
string t = "";
string u = m[3];
reverse(u.begin(), u.end());
t += u;
u = m[2];
reverse(u.begin(), u.end());
smatch m2;
if (regex_search(u, m2, re2)) {
string m21 = m2[1], m22 = m2[2];
mp::cpp_int x(m22);
x++;
if (m21.size() == 0) {
t += x.str();
} else {
if (m22.size() == x.str().size()) {
t += m21;
t += x.str();
} else {
assert(m22.size() + 1 == x.str().size());
t += m21.substr(0, m21.size() - 1);
t += x.str();
}
}
} else {
t += u.substr(0, u.size() - 1);
t += '1';
}
u = m[1];
reverse(u.begin(), u.end());
t += u;
cout << t << endl;
} else {
reverse(s.begin(), s.end());
cout << s << endl;
}
}
}
xuzijian629