ACM준비/algospot

ZEROONE

조규현15 2015. 8. 5. 14:22
반응형

https://www.algospot.com/judge/problem/read/ZEROONE

 

algospot.com :: ZEROONE

0-1수열 문제 정보 문제 0과 1로 구성된 수열이 있다. 수열의 길이가 N이라 하고, 각각의 수열의 원소마다 순서대로 번호를 매길 경우 첫 번째 숫자는 0번이 되고 두 번째 숫자는 1번, 그리고 마지

www.algospot.com

01 또는 10으로 바뀌는 순간 addIndex가 변경됨.

입력값 i, j의 차와 OUTPUT의 값을 비교하여 변경지점을 찾을 수 있음.

index Searching은 시간초과로 실패함.

#include
#define abs(a)(((a) < (0))?-(a):(a))

char INPUT[1000001];
int OUTPUT[1000001];

void SOLVE()
{
	int i, j;
	scanf("%d %d", &i, &j);

	if (OUTPUT[(i > j) ? i : j] >= abs(i - j))
		printf("Yes\n");
	else
		printf("No\n");
	return;
}
int main()
{
	int N;

	scanf("%s", INPUT);

	char PC = INPUT[0];
	OUTPUT[0] = '0';
	for (int i = 0, j = 1; INPUT[j]; j++){
		if (INPUT[i] != INPUT[j])
			i = j;
		OUTPUT[j] = j - i;
	}

	scanf("%d", &N);

	while (N-- > 0)
	{
		SOLVE();
	}

	return 0;
}
반응형

'ACM준비 > algospot' 카테고리의 다른 글

NQEEN  (0) 2015.08.13
PICNIC  (0) 2015.08.05
KBODRAFT  (0) 2015.08.05
EDIAN  (0) 2015.08.04
GRIDISLANDS - 2  (0) 2015.07.30