/* * 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); } }