|  | 
|  | 1 | +#include <iostream> | 
|  | 2 | +#include <string> | 
|  | 3 | + | 
|  | 4 | +using namespace std; | 
|  | 5 | + | 
|  | 6 | +int getnextNumber(const string &s, unsigned int &index) | 
|  | 7 | +{ | 
|  | 8 | +	int num = 0; | 
|  | 9 | +	while (index < s.size() && isdigit(s[index])) | 
|  | 10 | +	{ | 
|  | 11 | +		num = num * 10 + s[index] - '0'; | 
|  | 12 | +		index++; | 
|  | 13 | +	} | 
|  | 14 | +	return num; | 
|  | 15 | +} | 
|  | 16 | + | 
|  | 17 | +int compareVersionNumber(const string& x, const string& y) { | 
|  | 18 | +	unsigned int indexx = 0; | 
|  | 19 | +	unsigned int indexy = 0; | 
|  | 20 | +	while (indexx < x.size() && indexy < y.size()) | 
|  | 21 | +	{ | 
|  | 22 | +		int verx = getnextNumber(x, indexx); | 
|  | 23 | +		int very = getnextNumber(y, indexy); | 
|  | 24 | +		if (verx > very) return 1; | 
|  | 25 | +		if (verx < very) return -1; | 
|  | 26 | +		indexx += 1; | 
|  | 27 | +		indexy += 1; | 
|  | 28 | +	} | 
|  | 29 | +	if (indexx >= x.size() && indexy >= y.size()) return 0; | 
|  | 30 | +	if (indexx < x.size()) | 
|  | 31 | +	{ | 
|  | 32 | +		bool notzero = false; | 
|  | 33 | +		while (indexx < x.size()) | 
|  | 34 | +		{ | 
|  | 35 | +			int verx = getnextNumber(x, indexx); | 
|  | 36 | +			indexx += 1; | 
|  | 37 | +			if (verx != 0) | 
|  | 38 | +			{ | 
|  | 39 | +				notzero = true; | 
|  | 40 | +				break; | 
|  | 41 | +			} | 
|  | 42 | +		} | 
|  | 43 | +		if (notzero) | 
|  | 44 | +			return 1; | 
|  | 45 | +		else return 0; | 
|  | 46 | +	} | 
|  | 47 | +	bool notzero = false; | 
|  | 48 | +	while (indexy < y.size()) | 
|  | 49 | +	{ | 
|  | 50 | +		int very = getnextNumber(y, indexy); | 
|  | 51 | +		indexy += 1; | 
|  | 52 | +		if (very != 0) | 
|  | 53 | +		{ | 
|  | 54 | +			notzero = true; | 
|  | 55 | +			break; | 
|  | 56 | +		} | 
|  | 57 | +	} | 
|  | 58 | +	if (notzero) | 
|  | 59 | +		return -1; | 
|  | 60 | +	else return 0; | 
|  | 61 | + | 
|  | 62 | +} | 
|  | 63 | + | 
|  | 64 | +int main() { | 
|  | 65 | +	string x; | 
|  | 66 | +	string y; | 
|  | 67 | +	cin >> x >> y; | 
|  | 68 | +	cout << compareVersionNumber(x, y); | 
|  | 69 | +	return 0; | 
|  | 70 | +} | 
0 commit comments