Poj Solution 2685

http://poj.org/problem?id=2685

import java.io.BufferedInputStream;   
import java.util.Scanner;   
  
/**  
 *  
 * poj2685  
 * @author NC  
 */  
public class Main {   
  
    public static void main(String[] args) {   
        Scanner scan = new Scanner(new BufferedInputStream(System.in));   
        if (scan.hasNext()) {   
            int n = scan.nextInt();   
            scan.nextLine();   
            for (int i = 0; i < n; i++) {   
                String[] ss = scan.nextLine().trim().split(" ");   
                char[] a = ss[0].toCharArray();   
                char[] b = ss[1].toCharArray();   
                int[] va = {0, 0, 0, 0};   
                int[] vb = {0, 0, 0, 0};   
                int[] vc = new int[4];   
                for (int j = 0; j < a.length; j++) {   
                    if (a[j] - '0' <= 9 && a[j] - '0' >= 2) {   
                        j++;   
                        va[getIndex(a[j])] = a[j - 1] - '0';   
                    } else {   
                        va[getIndex(a[j])] = 1;   
                    }   
                }   
                for (int j = 0; j < b.length; j++) {   
                    if (b[j] - '0' <= 9 && b[j] - '0' >= 2) {   
                        j++;   
                        vb[getIndex(b[j])] = b[j - 1] - '0';   
                    } else {   
                        vb[getIndex(b[j])] = 1;   
                    }   
                }   
                for (int j = vc.length - 1; j >= 0; j--) {   
                    vc[j] = vc[j] + va[j] + vb[j];   
                    if (vc[j] >= 10) {   
                        vc[j] = vc[j] - 10;   
                        if (j - 1 >= 0) {   
                            vc[j - 1] = vc[j - 1] + 1;   
                        }   
                    }   
                }   
                print(vc);   
            }   
        }   
    }   
  
    static void print(int[] c) {   
        for (int i = 0; i < c.length; i++) {   
            if (c[i] == 0) {   
                continue;   
            }   
            if (c[i] == 1) {   
                System.out.print(""+getChar(i));   
            } else {   
                System.out.print(c[i]+(getChar(i)+""));   
            }   
        }   
        System.out.println();   
    }   
  
    static int getIndex(char c) {   
        switch (c) {   
            case 'm':   
                return 0;   
            case 'c':   
                return 1;   
            case 'x':   
                return 2;   
            case 'i':   
                return 3;   
            default:   
                return -1;   
        }   
    }   
  
    static char getChar(int i) {   
        switch (i) {   
            case 0:   
                return 'm';   
            case 1:   
                return 'c';   
            case 2:   
                return 'x';   
            case 3:   
                return 'i';   
            default:   
                return '0';   
        }   
    }   
}  
 


											
This entry was posted in poj. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *