# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
20474 | Lower Boundary (#35) | 채점 시스템 (OJUZ11_judge) | C++98 | 1000 ms | 2012 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<vector>
#include<string>
#include<algorithm>
#include<stdio.h>
using namespace std;
struct BigInteger {
string integer;
BigInteger(string _integer) : integer(_integer) {};
};
BigInteger operator+(BigInteger a, BigInteger b) {
vector<int> aList, bList, resultList;
for (int i = a.integer.size() - 1; i >= 0; i--) aList.push_back(a.integer[i] - '0');
for (int i = b.integer.size() - 1; i >= 0; i--) bList.push_back(b.integer[i] - '0');
int maxDigit = max(a.integer.size(), b.integer.size()) + 1;
for (int i = 0; i < maxDigit - a.integer.size(); i++) aList.push_back(0);
for (int i = 0; i < maxDigit - b.integer.size(); i++) bList.push_back(0);
for (int i = 0; i < maxDigit; i++) resultList.push_back(0);
for (int i = 0; i < maxDigit - 1; i++) {
resultList[i] += (aList[i] + bList[i]);
resultList[i + 1] += resultList[i] / 10;
resultList[i] %= 10;
}
while (resultList.back() == 0 && resultList.size() != 1) resultList.pop_back();
string result = "";
for (int i = resultList.size() - 1; i >= 0; i--) {
result += (resultList[i] + '0');
}
return BigInteger(result);
}
bool operator<(BigInteger a, BigInteger b) {
if (a.integer.size() < b.integer.size()) return true;
else if (a.integer.size() > b.integer.size()) return false;
else return a.integer < b.integer;
}
bool operator==(BigInteger a, BigInteger b) {
return a.integer == b.integer;
}
int main() {
//std::ios::sync_with_stdio(false);
int tc;
scanf("%d", &tc);
while (tc--) {
char a1[100000], b1[100000];
scanf("%s%s", &a1, &b1);
string a = a1;
string b = b1;
string c;
int result = (b.size() - a.size() - 1);
for (int i = 0; i < b.size(); i++) c += '0';
for (int i = 1; i < 10; i++) {
c[0] = i + '0';
if (BigInteger(c) + BigInteger(a) < BigInteger(b) || BigInteger(c) + BigInteger(a) == BigInteger(b)) {
result++;
break;
}
}
if (result < 0) puts("0");
else printf("%d\n", result);
}
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |