Friday, December 14, 2012

Codeforces Round #154 (Div. 2): A. Cards with Numbers

// Codeforces Round #154 (Div. 2): A. Cards with Numbers

import java.io.*;
import java.math.*;
import java.util.*;

//codeforces
public class Main2 {
    private static MyScanner in;
    private static PrintStream out = System.out;

    public static void main(String[] args) throws IOException {
        // helpers for input/output
        boolean LOCAL_TEST = false;
        // LOCAL_TEST = true;// comment it before submitting
        if (LOCAL_TEST) {
            in = new MyScanner("E:\\zin2.txt");
        }
        else {
            // using input.txt and output.txt as I/O
            in = new MyScanner("input.txt");
            // in = new MyScanner(true);
            out = new PrintStream("output.txt");
        }
        solve();
    }

    private static void solve() throws IOException
    {
        int N = in.nextInt();
        List<Integer>[] mm = new ArrayList[5001];
        for (int i = 0; i <= 5000; i++) {
            mm[i] = new ArrayList<Integer>();
        }
        for (int i = 0; i < 2 * N; i++) {
            int k = in.nextInt();
            mm[k].add(i + 1);
        }

        boolean flag = false;
        for (List<Integer> list : mm) {
            if (list.size() % 2 == 1) {
                flag = true;
                break;
            }
        }

        if (flag) {
            out.println(-1);
        }
        else {
            StringBuilder sb = new StringBuilder("");
            for (List<Integer> list : mm) {
                for (int j = 0; j < list.size(); j += 2) {
                    sb.append(list.get(j));
                    sb.append(" ");
                    sb.append(list.get(j + 1));
                    sb.append("\n");
                }
            }
            out.println(sb);
        }
    }
}

class MyScanner {
    StreamTokenizer in;

    public MyScanner() throws IOException
    {
        this("input.txt");
    }

    public MyScanner(String inputFile) throws IOException {
        Reader r;
        r = new BufferedReader(new FileReader(inputFile));
        in = new StreamTokenizer(r);
    }

    public MyScanner(boolean usingStdin)
    {
        if (usingStdin)
        {
            Reader r;
            r = new BufferedReader(new InputStreamReader(System.in));
            in = new StreamTokenizer(r);
        }
    }

    public int nextInt() throws IOException {
        in.nextToken();
        return (int) in.nval;
    }

    public long nextLong() throws IOException {
        in.nextToken();
        return (long) in.nval;
    }

    public double nextDouble() throws IOException {
        in.nextToken();
        return in.nval;
    }

    public String nextString() throws IOException {
        in.nextToken();
        return in.sval;
    }
}

No comments:

Post a Comment