Submission #5809796


Source Code Expand

import java.io.*;
import java.util.*;
import java.util.Map.Entry;
import java.util.stream.Collectors;

@SuppressWarnings("unused")
public class Main {
	String fileName = "input.txt";
	final boolean isDebug = false;
	//final boolean isDebug = true;
	FastScanner in = new FastScanner(System.in);
	PrintWriter out = new PrintWriter(System.out);
	final int MOD = (int)1e9+7;
	final long INF = Long.MAX_VALUE / 2;
	//final int INF = Integer.MAX_VALUE / 2;
	
	void solve() throws Exception{
		int N = in.nextInt();
		int[] C = new int[N], A = new int[N];
		for(int i = 1; i < N; i++){
			C[i] = in.nextInt();
			A[i] = in.nextInt();
		}
		
		int[] grundyNum = new int[N];
		boolean[] g = new boolean[N];
		for(int i = 1; i < N; i++){
			Arrays.fill(g, false);
			for(int j = i - C[i]; j < i; j++) g[grundyNum[j]] = true;
			for(int j = 0; j < N; j++){
				if(!g[j]){
					grundyNum[i] = j;
					break;
				}
			}
		}
		
		int xor = 0;
		for(int i = 1; i < N; i++) if(A[i] % 2 == 1) xor ^= grundyNum[i];
		System.out.println((xor != 0) ? "First" : "Second");
	}
	
	/* end solve */
	
	/* main */
	public static void main(String[] args) throws Exception {
		new Main().m();
	}
	
	void m() throws Exception {
		if(isDebug) in = new FastScanner(new FileInputStream(fileName));
		solve();
		out.flush();
	}
	/* end main */
}
/* end Main */

class FastScanner {
	Reader input;

	FastScanner() {this(System.in);}
	FastScanner(InputStream stream) {this.input = new BufferedReader(new InputStreamReader(stream));}

	int nextInt() {return (int) nextLong();}

	long nextLong() {
		try {
			int sign = 1;
			int b = input.read();
			while ((b < '0' || '9' < b) && b != '-' && b != '+') {
				b = input.read();
			}
			if (b == '-') {
				sign = -1;
				b = input.read();
			} else if (b == '+') {
				b = input.read();
			}
			long ret = b - '0';
			while (true) {
				b = input.read();
				if (b < '0' || '9' < b) return ret * sign;
				ret *= 10;
				ret += b - '0';
			}
		} catch (IOException e) {
			e.printStackTrace();
			return -1;
		}
	}

	double nextDouble() {
		try {
			double sign = 1;
			int b = input.read();
			while ((b < '0' || '9' < b) && b != '-' && b != '+') {
				b = input.read();
			}
			if (b == '-') {
				sign = -1;
				b = input.read();
			} else if (b == '+') {
				b = input.read();
			}
			double ret = b - '0';
			while (true) {
				b = input.read();
				if (b < '0' || '9' < b) break;
				ret *= 10;
				ret += b - '0';
			}
			if (b != '.') return sign * ret;
			double div = 1;
			b = input.read();
			while ('0' <= b && b <= '9') {
				ret *= 10;
				ret += b - '0';
				div *= 10;
				b = input.read();
			}
			return sign * ret / div;
		} catch (IOException e) {
			e.printStackTrace();
			return Double.NaN;
		}
	}

	char nextChar() {
		try {
			int b = input.read();
			while (Character.isWhitespace(b)) {
				b = input.read();
			}
			return (char) b;
		} catch (IOException e) {
			e.printStackTrace();
			return 0;
		}
	}

	String nextStr() {
		try {
			StringBuilder sb = new StringBuilder();
			int b = input.read();
			while (Character.isWhitespace(b)) {
				b = input.read();
			}
			while (b != -1 && !Character.isWhitespace(b)) {
				sb.append((char) b);
				b = input.read();
			}
			return sb.toString();
		} catch (IOException e) {
			e.printStackTrace();
			return "";
		}
	}
}

Submission Info

Submission Time
Task C - 茶碗と豆
User Oland
Language Java8 (OpenJDK 1.8.0)
Score 100
Code Size 3469 Byte
Status TLE
Exec Time 2108 ms
Memory 25624 KB

Judge Result

Set Name Sample Dataset1 Dataset2 Dataset3
Score / Max Score 0 / 0 80 / 80 20 / 20 0 / 4
Status
AC × 3
AC × 13
AC × 21
AC × 23
TLE × 6
Set Name Test Cases
Sample sample-01.txt, sample-02.txt, sample-03.txt
Dataset1 sample-01.txt, sample-02.txt, sample-03.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt
Dataset2 sample-01.txt, sample-02.txt, sample-03.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt
Dataset3 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 03-01.txt, 03-02.txt, 03-03.txt, 03-04.txt, 03-05.txt, 03-06.txt, 03-07.txt, 03-08.txt, sample-01.txt, sample-02.txt, sample-03.txt
Case Name Status Exec Time Memory
01-01.txt AC 69 ms 18644 KB
01-02.txt AC 70 ms 21204 KB
01-03.txt AC 69 ms 19028 KB
01-04.txt AC 70 ms 17620 KB
01-05.txt AC 72 ms 20692 KB
01-06.txt AC 70 ms 15824 KB
01-07.txt AC 70 ms 17620 KB
01-08.txt AC 70 ms 19156 KB
01-09.txt AC 69 ms 17748 KB
01-10.txt AC 69 ms 19156 KB
02-01.txt AC 69 ms 20180 KB
02-02.txt AC 68 ms 19540 KB
02-03.txt AC 71 ms 21076 KB
02-04.txt AC 69 ms 18516 KB
02-05.txt AC 69 ms 19284 KB
02-06.txt AC 71 ms 20692 KB
02-07.txt AC 71 ms 21076 KB
02-08.txt AC 69 ms 20308 KB
03-01.txt TLE 2108 ms 23920 KB
03-02.txt TLE 2105 ms 24020 KB
03-03.txt TLE 2105 ms 23868 KB
03-04.txt TLE 2108 ms 21656 KB
03-05.txt TLE 2104 ms 24216 KB
03-06.txt TLE 2108 ms 25624 KB
03-07.txt AC 464 ms 24148 KB
03-08.txt AC 474 ms 23996 KB
sample-01.txt AC 68 ms 19284 KB
sample-02.txt AC 68 ms 17620 KB
sample-03.txt AC 69 ms 19156 KB