Cod sursa(job #2595532)

Utilizator alexradu04Radu Alexandru alexradu04 Data 7 aprilie 2020 21:01:26
Problema Economie Scor 0
Compilator java Status done
Runda Arhiva de probleme Marime 1.38 kb
import java.io.*;
import java.util.Arrays;
import java.util.Scanner;
public class Main {

    public static void main(String[] args) throws IOException {
        Scanner input = new Scanner(new FileInputStream("economie.in"));

        int n=input.nextInt();
            int minn,maxx;
            int []numbers= new int[n+1];
            numbers[1]=input.nextInt();
            minn=maxx=numbers[1];
            for(int i=2;i<=n;++i) {
                numbers[i]= input.nextInt();
                minn=Math.min(numbers[i],minn);
                maxx=Math.max(numbers[i],maxx);
            }
            Arrays.sort(numbers,1,n+1);
            boolean []obtainable= new boolean[maxx+1];
            int []picked= new int[n+1];
            int ans=0;
            for(int i=1;i<=n;++i) {
                if(!obtainable[numbers[i]]) {
                    picked[++ans]=numbers[i];
                    obtainable[numbers[i]]=true;
                    for(int j=minn;j<=maxx-numbers[i];++j) {
                        if(obtainable[j]) {
                            obtainable[numbers[i]+j]=true;
                        }
                    }
                }
            }
            PrintStream output = new PrintStream("economie.in");
            output.println(ans);
            for(int i=1;i<=ans;++i) {
                output.printf("%d ",picked[i]);
            }
    }
}