Friday, July 10, 2015

UVa 10324 - Zeros and Ones

// UVa 10324 - Zeros and Ones

#include <iostream>
#include <stdio.h>
#include <string>
using namespace std;

int T[1000000];

int main() {
	string line;
	int t = 0;
	while (getline(cin, line) && (line.length() > 0)) {
		t++;
		// initialization
		int last[2] = { -1, -1 };
		for (int i = 0; i < line.length(); i++) {
			T[i] = last[(line[i] - '0' + 1) & 1];
			last[line[i] - '0'] = i;
		}
		printf("Case %d:\n", t);
		// queries
		int q;
		for (cin >> q; q; q--) {
			int i, j;
			cin >> i >> j;
			int a = max(min(i, j), 0);
			int b = max(i, j);
			if (b >= line.length())
				b = line.length() - 1;
			if (T[b] < a)
				printf("Yes\n");
			else
				printf("No\n");
		}
		getline(cin, line);
	}
	return 0;
}

No comments:

Post a Comment