Codeforces 168B
解法
行の開始文字と空行の有無に応じて分岐をする.Javaの場合はStringBuilderを使わないと間に合わない.
実装(Java)
import java.util.*; import java.math.*; import java.io.*; import java.util.regex.*; import static java.lang.Math.*; import static java.util.Arrays.*; import static java.lang.System.*; public class Main { Scanner cin; Boolean is_amplifying(String s){ for(int i=0;i<s.length();i++){ if(s.charAt(i)=='#')return true; if(s.charAt(i)!=' ')return false; } return false; } void run(){ cin=new Scanner(System.in); List<String> input = new ArrayList<String>(); while(cin.hasNextLine()){ input.add(cin.nextLine()); } StringBuilder tmp=new StringBuilder(); int back=1; int cnt=0; for(int i=0;i<input.size();i++){ if(is_amplifying(input.get(i))){ if(cnt>0&&back==1&&tmp.length()==0){ printf("\n"); }else if(tmp.length()>0){ printf("%s\n",tmp.toString()); } tmp=new StringBuilder(); printf("%s\n",input.get(i)); back=1; cnt=0; }else{ cnt++; tmp.append(input.get(i).replaceAll(" ","")); } } if(tmp.length()>0)printf("%s\n",tmp.toString()); else if(cnt>0)printf("\n"); } void printf(String format,Object... args){ System.out.printf(format, args); } public static void main(String[] args) { new Main().run(); } }