Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- public class sc2 {
- static int[][] mem;
- public static void main(String[] args)
- {
- Scanner in = new Scanner(System.in);
- while(true)
- {
- mem = new int[2001][2001];
- for(int i = 0; i < 2001; i++)
- for(int j = 0; j < 2001; j++)
- mem[i][j]=-1;
- int minerals = in.nextInt()/25;
- int gas = in.nextInt()/25;
- int zealot = in.nextInt();
- int stalker = in.nextInt();
- int sentry = in.nextInt();
- if(minerals == 0 && gas==0 && zealot==0 && stalker==0 && sentry==0 )
- break;
- System.out.println(totalpw(minerals, gas, zealot, stalker, sentry));
- }
- }
- public static int totalpw(int min, int gas, int z, int st, int se)
- {
- int p1 = 0;
- int p2 = 0;
- int p3 = 0;
- if(mem[min][gas] != -1)
- {
- return mem[min][gas];
- }
- if(min >= 4)
- {
- p1 = z+totalpw(min-4,gas,z,st,se);
- }
- if(min>=5 && gas>=2)
- {
- p2 = st+totalpw(min-5,gas-2,z,st,se);
- }
- if(min>=2 && gas>=4)
- {
- p3 = se+totalpw(min-2,gas-4,z,st,se);
- }
- if(p1 >= p2 && p1 >= p3)
- {
- mem[min][gas] = p1;
- }
- if(p2>=p1&&p2>=p3)
- {
- mem[min][gas] = p2;
- }
- if(p3>=p1&&p3>=p2)
- {
- mem[min][gas] = p3;
- }
- return mem[min][gas];
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement