Cod sursa(job #1361703)

Utilizator sergiu_turleaSergiu Turlea sergiu_turlea Data 25 februarie 2015 23:07:29
Problema Convertor Scor 40
Compilator java Status done
Runda rosedu_cdl_2015 Marime 1.87 kb
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Set;




public class Main {

	public static void main(String[] args) {
		try {
			BufferedReader br = new BufferedReader(new FileReader("convertor.in"));
			BufferedWriter bw = new BufferedWriter(new FileWriter("convertor.out"));
			LinkedHashMap<String, ArrayList<String>> hm = new LinkedHashMap<String, ArrayList<String>>();
			String line = br.readLine();
			String elem[];
			while(line != null) {
				elem = line.split("\\[\\s*\\{\\s*\"|\"\\s*:\\s*\"*|\"*,\\s*\"|,\\s*\"|\"*\\s*\\}, \\{\\s*\"|\"*\\s*\\}\\s*\\]|\"|,");
				for(int i = 1; i<elem.length;i+=2) {
					if(hm.containsKey(elem[i]))
						hm.get(elem[i]).add(elem[i+1]);
					else {
						ArrayList<String> aux = new ArrayList<String>();
						aux.add(elem[i+1]);
						hm.put(elem[i], aux);
					}
				}
				line = br.readLine();
			}
			Set<String> ks = hm.keySet();
			Iterator<String> it = ks.iterator();
			while(it.hasNext()) {
				bw.write(it.next());
				bw.write(",");
			}
			bw.newLine();
			int i=0,s=0;
			ArrayList<String> temp;
			do {
				it = ks.iterator();
				while(it.hasNext()) {
					temp = hm.get(it.next());
					s = temp.size();
					bw.write(temp.get(i));
					bw.write(",");
				}
				bw.newLine();
				i++;
			} while(i<s);
			
			br.close();
			bw.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

}