Submission #907778
Source Code Expand
import java.util.Scanner;
/**
* http://arc060.contest.atcoder.jp/tasks/arc060_a
* version-2
* @author Cummin
*/
public class Main {
static int N ;
static int A ;
static int plus[], minus[], zero[] ;
static int plus_i, minus_i, zero_i ;
public static void main(String[] args) {
// System.out.printf("At Coder Regular Contest 060 問題C \n") ;
Scanner sc = new Scanner(System.in);
N = sc.nextInt() ;
A = sc.nextInt() ;
plus = new int[N];
minus = new int[N] ;
zero = new int[N] ;
for (int i=0 ; i<N; i++) {
plus[i] = 51; minus[i] = 51 ;
}
for (int i= 0 ; i<N; i++) {
int x ;
x = sc.nextInt() ;
if (x<A) {
minus[minus_i] = A - x ;
minus_i ++ ;
}else if (x>A) {
plus[plus_i] = x - A ;
plus_i ++ ;
}else { // x==A
zero[zero_i] = 0 ;
zero_i ++ ;
}
}
System.out.println(solve2()) ;
}
static long solve2() {
long cnt = 0 ;
long plus_list[] = new long[2500] ;
long minus_list[] = new long[2500] ;
comb_list(plus_i, plus, plus_list) ;
comb_list(minus_i, minus, minus_list) ;
for (int i=1 ; i<2500; i++) {
cnt = cnt + plus_list[i]*minus_list[i] ;
}
if (zero_i >0 ) {
//System.out.printf("cnt=%d, zero_i=%d, p2=%d \n", cnt, zero_i, power_2(zero_i)) ;
cnt = (cnt * power_2(zero_i)) + power_2(zero_i)-1 ; // plus/minusとゼロの組み合わせ + zeroだけで構成する場合
return cnt ;
} else
return cnt;
}
static void comb_list(int n, int[] X, long list[]) {
int max ;
list [0] = 1 ; // dummy (マーク用)
max = 0 ;
for (int i = 0; i < n ; i++) {
// 1..maxの値を、X[i]だけシフトして加算コピーする, X[i]をマーク(1)
for (int j=max; 0<=j ; j-- ){
list[j + X[i]] = list[j + X[i]] + list[j] ;
}
max = max + X[i] ;
}
}
static int comb_add(long n, int[] X) {
int count = 0;
int sum = 0 ;
while (n > 0) {
if ((n & 0x01) == 1) {
sum = sum + X[count];
}
count++;
n = n >> 1;
}
return sum;
}
static long power_2(int n) { // n個の要素の組み合わせは、2^n通り
long a = 1 ;
for (int i=1 ; i<=n ; i++) {
a = a+a ;
}
return a ;
}
}
Submission Info
| Submission Time | |
|---|---|
| Task | C - Tak and Cards |
| User | Cummin |
| Language | Java7 (OpenJDK 1.7.0) |
| Score | 300 |
| Code Size | 2813 Byte |
| Status | AC |
| Exec Time | 143 ms |
| Memory | 9428 KiB |
Judge Result
| Set Name | Sample | Subtask1 | All | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 200 / 200 | 100 / 100 | ||||||
| Status |
|
|
|
| Set Name | Test Cases |
|---|---|
| Sample | example_01.txt, example_02.txt, example_03.txt, example_04.txt |
| Subtask1 | example_01.txt, example_02.txt, example_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt |
| All | example_01.txt, example_02.txt, example_03.txt, example_04.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| example_01.txt | AC | 129 ms | 9044 KiB |
| example_02.txt | AC | 126 ms | 9044 KiB |
| example_03.txt | AC | 125 ms | 9044 KiB |
| example_04.txt | AC | 126 ms | 9044 KiB |
| subtask1_01.txt | AC | 126 ms | 9044 KiB |
| subtask1_02.txt | AC | 126 ms | 9044 KiB |
| subtask1_03.txt | AC | 129 ms | 9044 KiB |
| subtask1_04.txt | AC | 127 ms | 9044 KiB |
| subtask1_05.txt | AC | 127 ms | 9044 KiB |
| subtask1_06.txt | AC | 125 ms | 9044 KiB |
| subtask1_07.txt | AC | 126 ms | 9044 KiB |
| subtask1_08.txt | AC | 126 ms | 9044 KiB |
| subtask1_09.txt | AC | 126 ms | 9044 KiB |
| subtask2_01.txt | AC | 128 ms | 9044 KiB |
| subtask2_02.txt | AC | 139 ms | 9172 KiB |
| subtask2_03.txt | AC | 127 ms | 9044 KiB |
| subtask2_04.txt | AC | 127 ms | 9044 KiB |
| subtask2_05.txt | AC | 143 ms | 9428 KiB |
| subtask2_06.txt | AC | 143 ms | 9428 KiB |
| subtask2_07.txt | AC | 139 ms | 9172 KiB |
| subtask2_08.txt | AC | 129 ms | 9044 KiB |
| subtask2_09.txt | AC | 127 ms | 9044 KiB |
| subtask2_10.txt | AC | 129 ms | 9172 KiB |
| subtask2_11.txt | AC | 127 ms | 9044 KiB |