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
AC × 24
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