/* * The Computer Language Benchmarks Game * http://shootout.alioth.debian.org/ * contributed by Anthony Donnefort * redone by Enotus 2010-11-20 */ import java.io.*; public final class revcomp { static final byte[] map=new byte[128]; static{ String[] mm={"ACBDGHK\nMNSRUTWVYacbdghkmnsrutwvy","TGVHCDM\nKNSYAAWBRTGVHCDMKNSYAAWBR"}; for(int i=0;i<mm[0].length();i++) map[mm[0].charAt(i)]=(byte)mm[1].charAt(i); } static void reverse(byte[] buf,int begin,int end){ while(true){ byte bb=buf[begin];if(bb=='\n') bb=buf[++begin]; byte be=buf[end];if(be=='\n') be=buf[--end]; if(begin>end) break; buf[begin++]=map[be]; buf[end--]=map[bb]; } } public static void main(String[] args) throws IOException{ final byte[] buf=new byte[System.in.available()]; System.in.read(buf); for(int i=0;i<buf.length;){ while(buf[i++]!='\n'); int data=i; while(i<buf.length && buf[i++]!='>'); reverse(buf,data,i-2); } System.out.write(buf); } }