AtCoder Beginner Contest 002

Submission #3979730

Source codeソースコード

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.Arrays;

public class Main {

	public static void main(String[] args) {
		InputStream inputStream = System.in;
		OutputStream outputStream = System.out;
		MyInput in = new MyInput(inputStream);
		PrintWriter out = new PrintWriter(outputStream);
		TaskX solver = new TaskX();
		solver.solve(1, in, out);
		out.close();
	}

	static int INF = 1 << 30;
	static long LINF = 1L << 55;
	static int MOD = 1000000007;
	static int[] mh4 = { 0, -1, 1, 0 };
	static int[] mw4 = { -1, 0, 0, 1 };
	static int[] mh8 = { -1, -1, -1, 0, 0, 1, 1, 1 };
	static int[] mw8 = { -1, 0, 1, -1, 1, -1, 0, 1 };

	static class TaskX {

		public void solve(int testNumber, MyInput in, PrintWriter out) {

			int n = in.nextInt(), m = in.nextInt();
			int[][] mat = new int[n][n];
			fill(mat, -1);
			for (int i = 0; i < m; i++) {
				int x = in.nextInt()-1, y = in.nextInt()-1;
				mat[x][y] = 1;
				mat[y][x] = 1;
			}

			int ans = 0;
			for (int bit = 0; bit < 1 << n; bit++) {
				boolean ok = true;
				for (int i = 0; i < n; i++) {
					if ((bit >> i & 1) == 0) continue;
					for (int j = i+1; j < n; j++) {
						if ((bit >> j & 1) == 0) continue;
						if (mat[i][j] == -1) ok = false;
					}
				}
				ans = Math.max(ans, ok ? Integer.bitCount(bit) : 0);
			}

			out.println(ans);
		}
	}

	static void fill(int[][] a, int v) {
		for (int i = 0; i < a.length; i++) {
			for (int j = 0; j < a[0].length; j++) {
				a[i][j] = v;
			}
		}
	}

	static class MyInput {
		private final BufferedReader in;
		private static int pos;
		private static int 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 MyInput(InputStream is) {
			in = new BufferedReader(new InputStreamReader(is));
		}

		public int read() {
			if (pos >= readLen) {
				pos = 0;
				try {
					readLen = in.read(buffer);
				} catch (IOException e) {
					throw new RuntimeException();
				}
				if (readLen <= 0) {
					throw new MyInput.EndOfFileRuntimeException();
				}
			}
			return buffer[pos++];
		}

		public int nextInt() {
			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() {
			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() {
			while (true) {
				final int c = read();
				if (!isSpace[c]) {
					return (char) c;
				}
			}
		}

		public String nextString() {
			return new String(nextChars());
		}

		public char[] nextChars() {
			int len = 0;
			str[len++] = nextChar();
			len = reads(len, isSpace);
			return Arrays.copyOf(str, len);
		}

		int reads(int len, boolean[] accept) {
			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 (MyInput.EndOfFileRuntimeException e) {
			}
			return len;
		}

		public int[] nextIntArray(final int n) {
			final int[] res = new int[n];
			for (int i = 0; i < n; i++) {
				res[i] = nextInt();
			}
			return res;
		}

		public int[] nextIntArray1Index(final int n) {
			final int[] res = new int[n + 1];
			for (int i = 1; i < n + 1; i++) {
				res[i] = nextInt();
			}
			return res;
		}

		public int[] nextIntArrayDec(final int n) {
			final int[] res = new int[n];
			for (int i = 0; i < n; i++) {
				res[i] = nextInt() - 1;
			}
			return res;
		}

		public long[] nextLongArray(final int n) {
			final long[] res = new long[n];
			for (int i = 0; i < n; i++) {
				res[i] = nextLong();
			}
			return res;
		}

		public long[] nextLongArray1Index(final int n) {
			final long[] res = new long[n + 1];
			for (int i = 1; i < n + 1; i++) {
				res[i] = nextLong();
			}
			return res;
		}

		public long[] nextLongArrayDec(final int n) {
			final long[] res = new long[n];
			for (int i = 0; i < n; i++) {
				res[i] = nextLong() - 1;
			}
			return res;
		}

		public double nextDouble() {
			return Double.parseDouble(nextString());
		}

		public double[] nextDoubleArray(int n) {
			double[] res = new double[n];
			for (int i = 0; i < n; i++) {
				res[i] = nextDouble();
			}
			return res;
		}

		static class EndOfFileRuntimeException extends RuntimeException {
		}

	}

}

Submission

Task問題 D - 派閥
User nameユーザ名 uubnn
Created time投稿日時
Language言語 Java8 (OpenJDK 1.8.0)
Status状態 AC
Score得点 100
Source lengthソースコード長 5531 Byte
File nameファイル名
Exec time実行時間 89 ms
Memory usageメモリ使用量 23380 KB

Test case

Set

Set name Score得点 / Max score Cases
all 100 / 100 00_sample_01.txt,00_sample_02.txt,00_sample_03.txt,00_sample_04.txt,test_01.txt,test_02.txt,test_03.txt,test_04.txt,test_05.txt,test_06.txt,test_07.txt,test_08.txt,test_09.txt,test_10.txt,test_11.txt,test_12.txt,test_13.txt,test_14.txt,test_15.txt,test_16.txt,test_17.txt,test_18.txt,test_19.txt,test_20.txt,test_21.txt,test_22.txt,test_23.txt,test_24.txt,test_25.txt,test_26.txt,test_27.txt,test_28.txt,test_29.txt,test_30.txt,test_31.txt,test_32.txt,test_33.txt,test_34.txt,test_35.txt,test_36.txt,test_37.txt,test_38.txt,test_39.txt,test_40.txt,test_41.txt,test_42.txt,test_43.txt,test_44.txt,test_45.txt,test_46.txt,test_47.txt,test_48.txt,test_49.txt,test_50.txt,test_51.txt,test_52.txt,test_53.txt,test_54.txt,test_55.txt,test_56.txt,test_57.txt,test_58.txt,test_59.txt,test_60.txt,test_61.txt,test_62.txt,test_63.txt,test_64.txt,test_65.txt,test_66.txt,test_67.txt,test_68.txt,test_69.txt,test_70.txt

Test case

Case name Status状態 Exec time実行時間 Memory usageメモリ使用量
00_sample_01.txt AC 72 ms 23380 KB
00_sample_02.txt AC 70 ms 22100 KB
00_sample_03.txt AC 71 ms 17876 KB
00_sample_04.txt AC 74 ms 19284 KB
test_01.txt AC 72 ms 20052 KB
test_02.txt AC 73 ms 20820 KB
test_03.txt AC 72 ms 21332 KB
test_04.txt AC 72 ms 20052 KB
test_05.txt AC 72 ms 17620 KB
test_06.txt AC 73 ms 20692 KB
test_07.txt AC 71 ms 19924 KB
test_08.txt AC 71 ms 21460 KB
test_09.txt AC 73 ms 20820 KB
test_10.txt AC 73 ms 19668 KB
test_11.txt AC 77 ms 18900 KB
test_12.txt AC 86 ms 19156 KB
test_13.txt AC 70 ms 17620 KB
test_14.txt AC 73 ms 20948 KB
test_15.txt AC 72 ms 18388 KB
test_16.txt AC 70 ms 18900 KB
test_17.txt AC 71 ms 19540 KB
test_18.txt AC 73 ms 19028 KB
test_19.txt AC 77 ms 19284 KB
test_20.txt AC 76 ms 17620 KB
test_21.txt AC 72 ms 19284 KB
test_22.txt AC 80 ms 21076 KB
test_23.txt AC 74 ms 18260 KB
test_24.txt AC 76 ms 20820 KB
test_25.txt AC 70 ms 19664 KB
test_26.txt AC 75 ms 17620 KB
test_27.txt AC 71 ms 19664 KB
test_28.txt AC 70 ms 20180 KB
test_29.txt AC 72 ms 19280 KB
test_30.txt AC 72 ms 18900 KB
test_31.txt AC 76 ms 21204 KB
test_32.txt AC 74 ms 21332 KB
test_33.txt AC 88 ms 18772 KB
test_34.txt AC 70 ms 18004 KB
test_35.txt AC 76 ms 19284 KB
test_36.txt AC 78 ms 19540 KB
test_37.txt AC 89 ms 21716 KB
test_38.txt AC 88 ms 21716 KB
test_39.txt AC 77 ms 19284 KB
test_40.txt AC 75 ms 21332 KB
test_41.txt AC 86 ms 22868 KB
test_42.txt AC 76 ms 19796 KB
test_43.txt AC 86 ms 21712 KB
test_44.txt AC 74 ms 18388 KB
test_45.txt AC 74 ms 18132 KB
test_46.txt AC 79 ms 18900 KB
test_47.txt AC 86 ms 19028 KB
test_48.txt AC 76 ms 18260 KB
test_49.txt AC 78 ms 21076 KB
test_50.txt AC 76 ms 19284 KB
test_51.txt AC 73 ms 19540 KB
test_52.txt AC 77 ms 16596 KB
test_53.txt AC 75 ms 20564 KB
test_54.txt AC 75 ms 21460 KB
test_55.txt AC 75 ms 19668 KB
test_56.txt AC 76 ms 19924 KB
test_57.txt AC 76 ms 18260 KB
test_58.txt AC 76 ms 17748 KB
test_59.txt AC 80 ms 22996 KB
test_60.txt AC 77 ms 21460 KB
test_61.txt AC 87 ms 21332 KB
test_62.txt AC 72 ms 19284 KB
test_63.txt AC 75 ms 21460 KB
test_64.txt AC 75 ms 18516 KB
test_65.txt AC 88 ms 19412 KB
test_66.txt AC 75 ms 18132 KB
test_67.txt AC 88 ms 18388 KB
test_68.txt AC 76 ms 20564 KB
test_69.txt AC 81 ms 19412 KB
test_70.txt AC 78 ms 21332 KB