View Code of Problem 197

#include <iostream>
#include <vector>
using namespace std;

//1000000001
//100001

int main() {
	vector<int> max;
	int flag[1000001] = { 0 };
	max.push_back(0);
	int gap = 1;
	for (int i = 1;i < 1000001;i++) {
		if (!flag[i]) {
			flag[i] = 1;
			max.push_back(i + gap);
			if (i + gap < 1000001) {
				flag[i + gap] = 1;
			}
			else {
				break;
			}
			gap++;
		}
	}
	int a, b;
	while (cin >> a >> b) {
		int res = 1;
		int maxN = a > b ? a : b;
		int minN = a < b ? a : b;
		if (max[maxN - minN] == maxN) {
			res = 0;
		}
		cout << gap << " " << max[gap] << " " << res << endl;
	}
}

Double click to view unformatted code.


Back to problem 197