Cod sursa(job #2595517)

Utilizator alexradu04Radu Alexandru alexradu04 Data 7 aprilie 2020 20:46:58
Problema Economie Scor 0
Compilator java Status done
Runda Arhiva de probleme Marime 2.32 kb
import java.io.*;
import java.nio.file.FileAlreadyExistsException;
import java.util.*;
import java.math.*;
public class Main {

    public static void main(String[] args) {
        Scanner input = null;
            try {
                File inParser= new File("economie.in");
                input = new Scanner(inParser);
            } catch (FileNotFoundException e) {
                System.out.println("Ce faci domle, avem erori pe infoarena?");
                e.printStackTrace();
            }

            int n=input.nextInt();
            int minn,maxx;
            int []numbers= new int[1005];
            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[50005];
            int []picked= new int[1005];
            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;
                        }
                    }
                }
            }/*
            try{
                File output= new File("economie.out");
                if(output.createNewFile()) {
                    System.out.println("File created: " + output.getName());
                } else {
                    System.out.println("File already exists.");
                }
            }catch (IOException e) {
                System.out.println("An error occurred.");
                e.printStackTrace();
            }*/
            PrintStream output=null;
            try {
                output = new PrintStream(new File("economie.out"));
            }catch (FileNotFoundException e) {
                e.printStackTrace();
            }
            System.setOut(output);
            System.out.println(ans);
            for(int i=1;i<=ans;++i) {
                System.out.printf("%d ",picked[i]);
            }

    }
}