import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; class DLLNode { protected E element; protected DLLNode pred, succ; public DLLNode(E elem, DLLNode pred, DLLNode succ) { this.element = elem; this.pred = pred; this.succ = succ; } @Override public String toString() { return "<-"+element.toString()+"->"; } } class DLL { private DLLNode first, last; public DLL() { // Construct an empty SLL this.first = null; this.last = null; } public void deleteList() { first = null; last = null; } public int length() { int ret; if (first != null) { DLLNode tmp = first; ret = 1; while (tmp.succ != null) { tmp = tmp.succ; ret++; } return ret; } else return 0; } public void insertFirst(E o) { DLLNode ins = new DLLNode(o, null, first); if (first == null) last = ins; else first.pred = ins; first = ins; } public void insertLast(E o) { if (first == null) insertFirst(o); else { DLLNode ins = new DLLNode(o, last, null); last.succ = ins; last = ins; } } public void insertAfter(E o, DLLNode after) { if(after==last){ insertLast(o); return; } DLLNode ins = new DLLNode(o, after, after.succ); after.succ.pred = ins; after.succ = ins; } public void insertBefore(E o, DLLNode before) { if(before == first){ insertFirst(o); return; } DLLNode ins = new DLLNode(o, before.pred, before); before.pred.succ = ins; before.pred = ins; } public E deleteFirst() { if (first != null) { DLLNode tmp = first; first = first.succ; if (first != null) first.pred = null; if (first == null) last = null; return tmp.element; } else return null; } public E deleteLast() { if (first != null) { if (first.succ == null) return deleteFirst(); else { DLLNode tmp = last; last = last.pred; last.succ = null; return tmp.element; } } // else throw Exception return null; } @Override public String toString() { String ret = new String(); if (first != null) { DLLNode tmp = first; ret += tmp + "<->"; while (tmp.succ != null) { tmp = tmp.succ; ret += tmp + "<->"; } } else ret = "Prazna lista!!!"; return ret; } public DLLNode getFirst() { return first; } public DLLNode getLast() { return last; } } public class DLLVojska { public static void main(String[] args) throws IOException { DLL lista = new DLL(); BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)); String s = stdin.readLine(); int N = Integer.parseInt(s); s = stdin.readLine(); String[] ids = s.split(" "); for (int i = 0; i < N; i++) { lista.insertLast(Integer.parseInt(ids[i])); } s = stdin.readLine(); String interval[] = s.split(" "); int a = Integer.parseInt(interval[0]); int b = Integer.parseInt(interval[1]); s = stdin.readLine(); interval = s.split(" "); int c = Integer.parseInt(interval[0]); int d = Integer.parseInt(interval[1]); DLL result = vojska(lista, a, b, c, d); DLLNode node = result.getFirst(); System.out.print(node.element); node = node.succ; while(node != null){ System.out.print(" "+node.element); node = node.succ; } } private static DLL vojska(DLL lista, int a, int b, int c, int d) { // Vasiot kod tuka int a_index = -1, b_index = -1, c_index = -1, d_index = -1; DLLNode head = lista.getFirst(); int i = 0; while(head != null) { if(head.element == a) { a_index = i; } if(head.element == b) { b_index = i; } if(head.element == c) { c_index = i; } if(head.element == d) { d_index = i; } head = head.succ; i++; } int[] niza = new int[lista.length()]; head = lista.getFirst(); i = 0; while(head != null) { niza[i] = head.element; head = head.succ; i++; } DLL answer = new DLL(); int tmp_c_index = c_index; int tmp_a_index = a_index; for(int j = 0; j < niza.length; j++) { if(a_index == j) { while(tmp_c_index <= d_index) { answer.insertLast(niza[tmp_c_index]); tmp_c_index++; } j = b_index; } else if(c_index == j) { while(tmp_a_index <= b_index) { answer.insertLast(niza[tmp_a_index]); tmp_a_index++; } j = d_index; } else { answer.insertLast(niza[j]); } } return answer; } }