3185.txt

来自「北大ACM题目例程 详细的解答过程 程序实现 算法分析」· 文本 代码 · 共 53 行

TXT
53
字号
Source

Problem Id:3185  User Id:fzk 
Memory:60K  Time:0MS
Language:C++  Result:Accepted

Source 

#include <stdio.h>

bool a[20], b[20];

void set( int k ) {
	if( k ) b[k-1] = !b[k-1];
	b[k] = !b[k];
	if( k<19 ) b[k+1] = !b[k+1];
}

int main( ) {
	int i, j, ans, count;

	for( i=0; i<20; i++ )
		scanf( "%d", &a[i] );

	ans = 20;

	for( i=0; i<2; i++ ) {
		for( j=0; j<20; j++ )
			b[j] = a[j];

		count = 0;
		if( i & 1 ) {
			set( 0 );
			count ++;
		}

		for( j=0; j<19; j++ ) {
			if( b[j] == 1 ) {
				set( j+1 );
				count++;
			}
		}

		if( b[19] == 0 && count < ans )
			ans = count;
	}

	printf( "%d\n", ans );

	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?