Submission #20472

# Submission time Handle Problem Language Result Execution time Memory
20472 2017-02-12T01:47:27 Z Lower Boundary(#62, pica4500) 채점 시스템 (OJUZ11_judge) C++
0 / 100
1000 ms 2024 KB
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
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() {
	int tc;
	cin >> tc;

	while (tc--) {
		string a, b, c;
		cin >> a >> b;
		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) cout << 0 << endl;
		else cout << result << endl;
	}
}

Compilation message

judge.cpp: In function 'BigInteger operator+(BigInteger, BigInteger)':
judge.cpp:17:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < maxDigit - a.integer.size(); i++) aList.push_back(0);
                    ^
judge.cpp:18:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < maxDigit - b.integer.size(); i++) bList.push_back(0);
                    ^
judge.cpp: In function 'int main()':
judge.cpp:48:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int i = 0; i < b.size(); i++) c += '0';
                     ^
# Verdict Execution time Memory Grader output
1 Execution timed out 1000 ms 2024 KB Execution timed out
# Verdict Execution time Memory Grader output
1 Execution timed out 1000 ms 2024 KB Execution timed out
2 Correct 466 ms 2024 KB Output is correct
3 Correct 449 ms 2024 KB Output is correct
4 Correct 496 ms 2024 KB Output is correct
5 Correct 489 ms 2024 KB Output is correct
6 Correct 459 ms 2024 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 1000 ms 2024 KB Execution timed out
2 Correct 466 ms 2024 KB Output is correct
3 Correct 449 ms 2024 KB Output is correct
4 Correct 496 ms 2024 KB Output is correct
5 Correct 489 ms 2024 KB Output is correct
6 Correct 459 ms 2024 KB Output is correct
7 Runtime error 726 ms 2024 KB Execution timed out (wall clock limit exceeded)
8 Correct 736 ms 2024 KB Output is correct
9 Correct 739 ms 2024 KB Output is correct
10 Runtime error 543 ms 2024 KB Execution timed out (wall clock limit exceeded)
11 Correct 243 ms 2024 KB Output is correct