Submission #2859689
Source Code Expand
import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) { Main main = new Main(); main.run(); } void run() { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); boolean[] dp=new boolean[10010]; //初期条件 dp[0]=true; //現在最大どこまで入っているか記録するための変数 //毎回10000回近くまわすのは無駄。 int imax=0; for (int i = 0; i < N; i++) { int buf=sc.nextInt(); //重複がないように後ろから更新していく。 for (int j = imax; j>=0; j--) { if(dp[j]==true) { dp[j+buf]=true; } } imax+=buf; } for (int j = imax; j > 0; j--) { if(dp[j]==true && (j%10!=0)) { System.out.println(j); return; } } } //以下テンプレート public static int[] extgcd(int a, int b) { int x0 = 1; int x1 = 0; int y0 = 0; int y1 = 1; while (b != 0) { int q = a / b; int r = a % b; int x2 = x0 - q * x1; int y2 = y0 - q * y1; a = b; b = r; x0 = x1; x1 = x2; y0 = y1; y1 = y2; } return new int[] { a, x0, y0 }; } static int gcd(int a, int b) { if (b == 0) return a; if (a < b) { int t = a; a = b; b = t; } return gcd(b, a % b); } static int lcm(int a, int b) { return a * b / gcd(a, b); } static void swap(int[] a) { int t; t = a[0]; a[0] = a[1]; a[1] = t; return; } static <T> void output(List<T> list) { for (int i = 0; i < list.size(); i++) { System.out.print(list.get(i)); if (i != list.size() - 1) { System.out.print(" "); } else { nl(); } } } static void output(String[][] str) { for (int i = 0; i < str.length; i++) { for (int j = 0; j < str[i].length; j++) { print(str[i][j]); } nl(); } } static void output(boolean flg, String Yes, String No) { if (flg) { pln(Yes); } else { pln(No); } } static void output(String[][] str, int digit) { String dig = "%" + String.valueOf(digit) + "s"; for (int i = 0; i < str.length; i++) { for (int j = 0; j < str[i].length; j++) { System.out.printf(dig, str[i][j]); } nl(); } } static void pln(String str) { System.out.println(str); } static void pln(int x) { System.out.println(x); } static void print(String str) { System.out.print(str); } static void print(int x) { System.out.print(x); } static void print(String str, int times) { for (int i = 0; i < times; i++) { print(str); } } static void print(int x, int times) { for (int i = 0; i < times; i++) { print(x); } } static void nl() { System.out.println(); } }
Submission Info
Submission Time | |
---|---|
Task | C - Bugged |
User | poporo |
Language | Java8 (OpenJDK 1.8.0) |
Score | 0 |
Code Size | 2876 Byte |
Status | WA |
Exec Time | 115 ms |
Memory | 21972 KB |
Judge Result
Set Name | Sample | All | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 300 | ||||||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | a01, a02, a03 |
All | a01, a02, a03, b04, b05, b06, b07, b08, b09, b10, b11, b12 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
a01 | AC | 94 ms | 18768 KB |
a02 | AC | 93 ms | 19924 KB |
a03 | WA | 91 ms | 21844 KB |
b04 | AC | 92 ms | 21972 KB |
b05 | AC | 106 ms | 20948 KB |
b06 | AC | 110 ms | 21204 KB |
b07 | AC | 106 ms | 19540 KB |
b08 | AC | 113 ms | 19540 KB |
b09 | AC | 115 ms | 21332 KB |
b10 | WA | 93 ms | 21716 KB |
b11 | WA | 107 ms | 19412 KB |
b12 | WA | 104 ms | 21844 KB |