⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2604.txt

📁 北大ACM题目例程 详细的解答过程 程序实现 算法分析
💻 TXT
字号:
Problem Id:2604  User Id:fzk 
Memory:44K  Time:0MS
Language:C++  Result:Accepted

Source 

#include <stdio.h>
#include <string.h>

char w[20010];


void print( int i, int j, int s )
{
	int h = 0;
	if( w[i] == '\"' )
	{
		if( s != 1 )printf( "``" );
		h++;
	}
	else printf( "%c", w[i] );
	
	for( i++; i<=j; i++ )
		if( w[i] == '\"' )
		{
			if( w[i-1] == '\\' )
				printf( "\"" );
			else if( s % 2 && h == s-1 );
			else 
			{
				if( h % 2 ) printf( "''" );
				else printf( "``" );
				h++;
			}
			
		}
		else printf( "%c", w[i] );
}
		

int main()
{

	int i = 0, j, s;
	
	while( scanf( "%c", &w[i] ) == 1 )
		i++;

	s = 0;
	for( i=0, j=0; ; i++ )
	{
		if( w[i] == '\"' && ( i == j || w[i-1] != '\\' ) )
			s++;
		else if( w[i] == '\\' )
		{
			if( strncmp( &w[i+1], "endinput", 8 ) == 0 && 
				!( w[i+9] >= 'a' &&  w[i+9] <= 'z' || w[i+9] >= 'A' &&  w[i+9] <= 'Z' ) )
			{
				print( j, i, s );
				printf( "endinput\n" );
				break;
			}
			else if( strncmp( &w[i+1], "par", 3 ) == 0 &&
				!( w[i+4] >= 'a' &&  w[i+4] <= 'z' || w[i+4] >= 'A' &&  w[i+4] <= 'Z' ) )
			{
				print( j, i, s );
				printf( "par" );
				s = 0;
				i += 3;
				j = i+1;
			}
		}
		else if( i && w[i] == '\n' && w[i-1] == '\n' )
		{
			print( j, i, s );
			s = 0;
			j = i+1;
		}
	}
			


	return 0;
}



⌨️ 快捷键说明

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