import java.io.*; /* * 对给定的字符串(只包含'z','o','j'三种字符),判断他是否能AC。 是否AC的规则如下: 1. zoj能AC; 2. 若字符串形式为xzojx,则也能AC,其中x可以是N个'o' 或者为空; 3. 若azbjc 能AC,则azbojac也能AC,其中a,b,c为N个'o'或者为空; 输入: 输入包含多组测试用例,每行有一个只包含'z','o','j'三种字符的字符串,字符串长度小于等于1000。 输出: 对于给定的字符串,如果能AC则请输出字符串“Accepted”,否则请输出“Wrong Answer”。 样例输入: zoj ozojo ozoojoo oozoojoooo zooj ozojo oooozojo zojoooo 样例输出: Accepted Accepted Accepted Accepted Accepted Accepted Wrong Answer Wrong Answer */ public class ZOJ { private class string_list{ String v=null; string_list next=null; public string_list add_to_end(string_list begin,string_list end){ if(begin.next==null){ begin.next=this; } else{ end.next=this; } end = this; return end; } } string_list data; string_list data_end; string_list result; string_list result_end; public ZOJ(){ this.data=new string_list(); this.data_end=null; this.result=new string_list(); this.result_end=null; } public static void main(String arg[]) { ZOJ zoj=new ZOJ(); zoj.run(); } public String AC(String s){ if(s.equals("zoj")) return "Accepted"; String regex2="[o]*zoj[o]*"; if(s.matches(regex2)){ int first=s.indexOf('z'); if(first!=s.length()-3-first) return "Wrong Answer"; return "Accepted"; } String regex3="[o]*z[o]+j[o]*"; if(s.matches(regex3)){ int z=s.indexOf('z'); int j=s.indexOf('j'); int o=j-1; String a=s.substring(0, z); String b=s.substring(z+1, o); String c=s.substring(j+1, s.length()); if(c.startsWith(a)){ c=c.substring(a.length(), c.length()); return AC(a+"z"+b+"j"+c); } return "Wrong Answer"; } return "Wrong Answer"; } public void run(){ BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); String s; try { while((s=br.readLine())!=null&&s.length()>0){ string_list sl=new string_list(); sl.v=s; sl.next=null; this.data_end=sl.add_to_end(data, data_end); string_list result=new string_list(); result.v=this.AC(s); result.next=null; this.result_end=result.add_to_end(this.result, result_end); } br.close(); string_list sl=this.result; while(sl.next!=null){ sl=sl.next; System.out.println(sl.v); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }