結果
| 問題 | No.8124 A+B |
| コンテスト | |
| ユーザー |
KEYBO
|
| 提出日時 | 2026-04-01 23:19:45 |
| 言語 | C++23 (gcc 15.2.0 + boost 1.89.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,890 bytes |
| 記録 | |
| コンパイル時間 | 2,653 ms |
| コンパイル使用メモリ | 345,180 KB |
| 実行使用メモリ | 353,024 KB |
| 最終ジャッジ日時 | 2026-04-01 23:19:52 |
| 合計ジャッジ時間 | 3,294 ms |
|
ジャッジサーバーID (参考情報) |
judge1_0 / judge4_1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 4 WA * 2 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
int main() {
string A,B;
cin >> A >> B;
int sizA = A.size(),sizB = B.size(),lA = -1,lB = -1;
for (int i = 0; i < sizA; i++) {
if (A[i] == '.') lA = i;
}
for (int i = 0; i < sizB; i++) {
if (B[i] == '.') lB = i;
}
bool under = false;
if (lA == -1 && lB == -1) {
under = false;
}
else if (lA == -1) {
A.push_back('.');
lA = sizA;
}
else if (lB == -1) {
B.push_back('.');
lB = sizB;
}
else under = true;
if (under && sizA - lA > sizB - lB) {
for (int i = 0; i < sizA - lA - sizB + lB; i++) {
B.push_back('0');
}
}
else if (under) {
for (int i = 0; i < sizB - lB - sizA + lA; i++) {
A.push_back('0');
}
}
reverse(A.begin(),A.end());
reverse(B.begin(),B.end());
sizA = A.size(),sizB = B.size();
if (sizA > sizB) {
for (int i = 0; i < sizA - sizB; i++) {
B.push_back('0');
}
}
else {
for (int i = 0; i < sizB - sizA; i++) {
A.push_back('0');
}
}
sizA = A.size(),sizB = B.size();
string result;
map<char,int> number;
number['0'] = 0; number['1'] = 1; number['2'] = 2; number['3'] = 3; number['4'] = 4;
number['5'] = 5; number['6'] = 6; number['7'] = 7; number['8'] = 8; number['9'] = 9;
string num = "0123456789";
int remain = 0,erased = 0;
bool first = false;
if (!under) first = true;
for (int i = 0; i < sizA; i++) {
if (A[i] == '.') {
if (first) result.push_back('.');
continue;
}
int a = number[A[i]],b = number[B[i]];
char c = A[i];
if ((a + b + remain)%10 == 0 && !first) {
remain = (a + b + remain)/10;
}
else {
first = true;
result.push_back(num[(a + b + remain)%10]);
remain = (a + b + remain)/10;
}
}
if (remain > 0) result.push_back(remain);
reverse(result.begin(),result.end());
cout << result << endl;
}
KEYBO