Submission #1099845


Source Code Expand

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

import static java.util.Arrays.*;

public class Main {
	private static final int mod = (int)924844033;

	final Random random = new Random(0);
	final IOFast io = new IOFast();

	/// MAIN CODE
	public void run() throws IOException {
//		int TEST_CASE = Integer.parseInt(new String(io.nextLine()).trim());
		int TEST_CASE = 1;
		while(TEST_CASE-- != 0) {
			int n = io.nextInt();
			A = io.nextIntArray(n);
			g = new List[n];
			for (int i = 0; i < n; i++) g[i] = new ArrayList<>();
			for (int i = 0; i < n - 1; i++) {
				int a = io.nextInt() - 1;
				int b = io.nextInt() - 1;
				g[a].add(b);
				g[b].add(a);
			}
			int len = 0;
			int[] ans = new int[n];
			for (int i = 0; i < n; i++) if (dfs(i)) ans[len++] = i + 1;
			printArrayLn(Arrays.copyOf(ans, len));
		}
	}
	
	List<Integer>[] g;
	
	int[] A;
	boolean dfs(int v) {
		for (int t : g[v]) {
			if (A[v] - 1 >= A[t]) {
				if (!dfs(t)) {
					return true;
				}
			}
		}
		return false;
	}

	/// TEMPLATE
	static int gcd(int n, int r) { return r == 0 ? n : gcd(r, n%r); }
	static long gcd(long n, long r) { return r == 0 ? n : gcd(r, n%r); }
	
	static <T> void swap(T[] x, int i, int j) { T t = x[i]; x[i] = x[j]; x[j] = t; }
	static void swap(int[] x, int i, int j) { int t = x[i]; x[i] = x[j]; x[j] = t; }

	void printArrayLn(int[] xs) { for(int i = 0; i < xs.length; i++) io.out.print(xs[i] + (i==xs.length-1?"\n":" ")); }
	void printArrayLn(long[] xs) { for(int i = 0; i < xs.length; i++) io.out.print(xs[i] + (i==xs.length-1?"\n":" ")); }
	
	static void dump(Object... o) { System.err.println(Arrays.deepToString(o)); } 
	
	void main() throws IOException {
		//		IOFast.setFileIO("rle-size.in", "rle-size.out");
		try { run(); }
		catch (EndOfFileRuntimeException e) { }
		io.out.flush();
	}
	public static void main(String[] args) throws IOException { new Main().main(); }
	
	static class EndOfFileRuntimeException extends RuntimeException {
		private static final long serialVersionUID = -8565341110209207657L; }

	static
	public class IOFast {
		private BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		private PrintWriter out = new PrintWriter(System.out);

		void setFileIn(String ins) throws IOException { in.close(); in = new BufferedReader(new FileReader(ins)); }
		void setFileOut(String outs) throws IOException { out.flush(); out.close(); out = new PrintWriter(new FileWriter(outs)); }
		void setFileIO(String ins, String outs) throws IOException { setFileIn(ins); setFileOut(outs); }

		private static int pos, readLen;
		private static final char[] buffer = new char[1024 * 8];
		private static char[] str = new char[500*8*2];
		private static boolean[] isDigit = new boolean[256];
		private static boolean[] isSpace = new boolean[256];
		private static boolean[] isLineSep = new boolean[256];

		static { for(int i = 0; i < 10; i++) { isDigit['0' + i] = true; } isDigit['-'] = true; isSpace[' '] = isSpace['\r'] = isSpace['\n'] = isSpace['\t'] = true; isLineSep['\r'] = isLineSep['\n'] = true; }
		public int read() throws IOException { if(pos >= readLen) { pos = 0; readLen = in.read(buffer); if(readLen <= 0) { throw new EndOfFileRuntimeException(); } } return buffer[pos++]; }
		public int nextInt() throws IOException { int len = 0; str[len++] = nextChar(); len = reads(len, isSpace); int i = 0; int ret = 0; if(str[0] == '-') { i = 1; } for(; i < len; i++) ret = ret * 10 + str[i] - '0'; if(str[0] == '-') { ret = -ret; } return ret; }
		public long nextLong() throws IOException { int len = 0; str[len++] = nextChar(); len = reads(len, isSpace); int i = 0; long ret = 0; if(str[0] == '-') { i = 1; } for(; i < len; i++) ret = ret * 10 + str[i] - '0'; if(str[0] == '-') { ret = -ret; } return ret; }
		public char nextChar() throws IOException { while(true) { final int c = read(); if(!isSpace[c]) { return (char)c; } } }
		int reads(int len, boolean[] accept) throws IOException { try { while(true) { final int c = read(); if(accept[c]) { break; } if(str.length == len) { char[] rep = new char[str.length * 3 / 2]; System.arraycopy(str, 0, rep, 0, str.length); str = rep; } str[len++] = (char)c; } } catch(EndOfFileRuntimeException e) { ; } return len; }
		int reads(char[] cs, int len, boolean[] accept) throws IOException { try { while(true) { final int c = read(); if(accept[c]) { break; } cs[len++] = (char)c; } } catch(EndOfFileRuntimeException e) { ; } return len; }
		public char[] nextLine() throws IOException { int len = 0; str[len++] = nextChar(); len = reads(len, isLineSep); try { if(str[len-1] == '\r') { len--; read(); } } catch(EndOfFileRuntimeException e) { ; } return Arrays.copyOf(str, len); }
		public String nextString() throws IOException { return new String(next()); }
		public char[] next() throws IOException { int len = 0; str[len++] = nextChar(); len = reads(len, isSpace); return Arrays.copyOf(str, len); }
//		public int next(char[] cs) throws IOException { int len = 0; cs[len++] = nextChar(); len = reads(cs, len, isSpace); return len; }
		public double nextDouble() throws IOException { return Double.parseDouble(nextString()); }
		public long[] nextLongArray(final int n) throws IOException { final long[] res = new long[n]; for(int i = 0; i < n; i++) { res[i] = nextLong(); } return res; }
		public int[] nextIntArray(final int n) throws IOException { final int[] res = new int[n]; for(int i = 0; i < n; i++) { res[i] = nextInt(); } return res; }
		public int[][] nextIntArray2D(final int n, final int k) throws IOException { final int[][] res = new int[n][]; for(int i = 0; i < n; i++) { res[i] = nextIntArray(k); } return res; }
		public int[][] nextIntArray2DWithIndex(final int n, final int k) throws IOException { final int[][] res = new int[n][k+1]; for(int i = 0; i < n; i++) { for(int j = 0; j < k; j++) { res[i][j] = nextInt(); } res[i][k] = i; } return res; }
		public double[] nextDoubleArray(final int n) throws IOException { final double[] res = new double[n]; for(int i = 0; i < n; i++) { res[i] = nextDouble(); } return res; }
	}
}

Submission Info

Submission Time
Task F - Tree Game
User tanzaku
Language Java8 (OpenJDK 1.8.0)
Score 1600
Code Size 6159 Byte
Status AC
Exec Time 149 ms
Memory 10324 KB

Compile Error

Note: ./Main.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 1600 / 1600
Status
AC × 3
AC × 53
Set Name Test Cases
Sample sample1.txt, sample2.txt, sample3.txt
All sample1.txt, sample2.txt, sample3.txt, in1.txt, in10.txt, in11.txt, in12.txt, in13.txt, in14.txt, in15.txt, in16.txt, in17.txt, in18.txt, in19.txt, in2.txt, in20.txt, in21.txt, in22.txt, in23.txt, in24.txt, in25.txt, in26.txt, in27.txt, in28.txt, in29.txt, in3.txt, in30.txt, in31.txt, in32.txt, in33.txt, in34.txt, in35.txt, in36.txt, in37.txt, in38.txt, in39.txt, in4.txt, in40.txt, in41.txt, in42.txt, in43.txt, in44.txt, in45.txt, in46.txt, in47.txt, in48.txt, in49.txt, in5.txt, in50.txt, in6.txt, in7.txt, in8.txt, in9.txt
Case Name Status Exec Time Memory
in1.txt AC 145 ms 10192 KB
in10.txt AC 132 ms 10068 KB
in11.txt AC 137 ms 10064 KB
in12.txt AC 111 ms 8784 KB
in13.txt AC 121 ms 8784 KB
in14.txt AC 138 ms 10064 KB
in15.txt AC 129 ms 10196 KB
in16.txt AC 130 ms 10192 KB
in17.txt AC 149 ms 10320 KB
in18.txt AC 122 ms 10068 KB
in19.txt AC 132 ms 9940 KB
in2.txt AC 127 ms 10064 KB
in20.txt AC 139 ms 10192 KB
in21.txt AC 131 ms 10192 KB
in22.txt AC 129 ms 10192 KB
in23.txt AC 142 ms 10064 KB
in24.txt AC 122 ms 10196 KB
in25.txt AC 129 ms 10192 KB
in26.txt AC 131 ms 10196 KB
in27.txt AC 134 ms 10324 KB
in28.txt AC 128 ms 10064 KB
in29.txt AC 138 ms 10192 KB
in3.txt AC 139 ms 10060 KB
in30.txt AC 133 ms 10192 KB
in31.txt AC 130 ms 10064 KB
in32.txt AC 132 ms 9936 KB
in33.txt AC 117 ms 9936 KB
in34.txt AC 114 ms 9812 KB
in35.txt AC 124 ms 9804 KB
in36.txt AC 99 ms 8528 KB
in37.txt AC 97 ms 8532 KB
in38.txt AC 99 ms 8528 KB
in39.txt AC 100 ms 8528 KB
in4.txt AC 136 ms 10064 KB
in40.txt AC 123 ms 10064 KB
in41.txt AC 133 ms 9936 KB
in42.txt AC 142 ms 10064 KB
in43.txt AC 127 ms 9936 KB
in44.txt AC 136 ms 9936 KB
in45.txt AC 116 ms 9808 KB
in46.txt AC 124 ms 9804 KB
in47.txt AC 127 ms 9940 KB
in48.txt AC 132 ms 10064 KB
in49.txt AC 130 ms 9936 KB
in5.txt AC 137 ms 10064 KB
in50.txt AC 132 ms 10192 KB
in6.txt AC 136 ms 10192 KB
in7.txt AC 132 ms 10064 KB
in8.txt AC 125 ms 9940 KB
in9.txt AC 128 ms 10192 KB
sample1.txt AC 99 ms 8528 KB
sample2.txt AC 99 ms 8528 KB
sample3.txt AC 99 ms 8528 KB