Submission #133614
Source Code Expand
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;
import java.util.Set;
import java.util.SortedMap;
import java.util.TreeMap;
public class Main {
int x;private int v =0;
int counter=0;
int previous = 0;
Integer[] shohin;
SortedMap<Integer,Integer> weightlist = new TreeMap<Integer, Integer>(
new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
// TODO 自動生成されたメソッド・スタブ
return o1-o2;
}
});
public Main(int x,int n) {
this.x=x;
shohin = new Integer[n];
weightlist.put(Integer.valueOf(0),1);
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int x = sc.nextInt();
Main main = new Main(x,n/2);
for(int i = 0; i<n/2;i++) main.add(sc.nextInt());
Main main2 = new Main(x,n-n/2);
for(int i = n/2; i<n;i++) main2.add(sc.nextInt());
main.start();main2.start();
int v=0;
for(Integer i : main2.weightlist.keySet()){
if(main.weightlist.containsKey(x-i)){
v += main2.weightlist.get(i) * main.weightlist.get(x-i);
}
}
System.out.println(main.getV()+main2.getV()+ v);
}
private void start() {
Arrays.sort(shohin,Collections.reverseOrder());
for(int value :shohin) add2(value);
}
private void add(int value){
shohin[counter] = value;
counter++;
}
private void add2(int value) {
int t;
SortedMap<Integer, Integer> karilist = new TreeMap<Integer, Integer>(weightlist);
for(Integer i: weightlist.keySet()){
t=i+value;
Integer k;
if(t<x){
karilist.put(
Integer.valueOf(t),
(k=weightlist.get(t))==null ? weightlist.get(i):k+weightlist.get(i)
);
}else if(t==x){
v+=weightlist.get(i);
}else break;
}
weightlist = karilist;
}
public int getV() {
return v;
}
public void setV(int v) {
this.v = v;
}
}
Submission Info
| Submission Time | |
|---|---|
| Task | C - 無駄なものが嫌いな人 |
| User | tamtam |
| Language | Java (OpenJDK 1.7.0) |
| Score | 100 |
| Code Size | 2013 Byte |
| Status | AC |
| Exec Time | 799 ms |
| Memory | 45260 KiB |
Judge Result
| Set Name | All | ||
|---|---|---|---|
| Score / Max Score | 100 / 100 | ||
| Status |
|
| Set Name | Test Cases |
|---|---|
| All | max_1.txt, max_2.txt, max_3.txt, max_4.txt, pair_1.txt, pair_2.txt, power2_1.txt, power2_2.txt, power2_3.txt, power2_4.txt, power2_5.txt, random_1.txt, random_2.txt, random_3.txt, random_4.txt, random_5.txt, random_6.txt, random_7.txt, random_8.txt, random_9.txt, small_1.txt, small_2.txt, small_3.txt, small_4.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| max_1.txt | AC | 530 ms | 23968 KiB |
| max_2.txt | AC | 545 ms | 26128 KiB |
| max_3.txt | AC | 504 ms | 23976 KiB |
| max_4.txt | AC | 515 ms | 25064 KiB |
| pair_1.txt | AC | 676 ms | 38236 KiB |
| pair_2.txt | AC | 541 ms | 25988 KiB |
| power2_1.txt | AC | 626 ms | 32664 KiB |
| power2_2.txt | AC | 555 ms | 25896 KiB |
| power2_3.txt | AC | 506 ms | 23984 KiB |
| power2_4.txt | AC | 502 ms | 23940 KiB |
| power2_5.txt | AC | 572 ms | 27060 KiB |
| random_1.txt | AC | 749 ms | 38368 KiB |
| random_2.txt | AC | 718 ms | 38644 KiB |
| random_3.txt | AC | 592 ms | 27084 KiB |
| random_4.txt | AC | 799 ms | 45260 KiB |
| random_5.txt | AC | 552 ms | 25836 KiB |
| random_6.txt | AC | 549 ms | 25780 KiB |
| random_7.txt | AC | 560 ms | 26816 KiB |
| random_8.txt | AC | 662 ms | 37084 KiB |
| random_9.txt | AC | 711 ms | 38616 KiB |
| sample_1.txt | AC | 492 ms | 23980 KiB |
| sample_2.txt | AC | 502 ms | 23972 KiB |
| sample_3.txt | AC | 515 ms | 24108 KiB |
| sample_4.txt | AC | 503 ms | 23980 KiB |
| small_1.txt | AC | 498 ms | 23976 KiB |
| small_2.txt | AC | 508 ms | 23972 KiB |
| small_3.txt | AC | 503 ms | 23848 KiB |
| small_4.txt | AC | 509 ms | 23980 KiB |