Java最大收益

大学生程序设计竞赛

标题Problem A: 最大收益

Time Limit: 1 Sec Memory Limit: 128 MB

Description

Elly的叔叔经营一家电脑装配公司ShumenSoft,为了使公司得到最大获益,他们日以继夜地工作着。
众所周知,一个电脑系统包含一个处理器和显示器。
在ShumenSoft公司的仓库中有N个处理器和M个显示器。第i个处理器花费Ai美元,第j个显示器花费Bj美元。包含第i个处理器和第j个显示器的电脑系统的价格是Ai*Bj。由于世界金融危机你必须装配尽可能多的电脑系统并且使它们的总价达到最大。

现在这个任务交给了你,相信你可圆满解决的。

Input

输入数据共3行——第 1 行:包含两个整数 N 和 M;第 2 行:包含 N 个整数,第 i 个数表示第 i 个处理器的价钱 Ai;第 3 行:包含 M 个整数,第 j 个数表示第 j 个显示器的价钱 Bj。
数据保证:1≤N, M≤100000,1≤Ai, Bj≤100000

Output

输出数据共1行。包含两个整数(用空格隔开)表示最多能组装的电脑系统和他们的最大价钱总和。

Sample Input Copy

4 2
1 2 3 4
5 6

Sample Output Copy

2 39

Java代码:

代码在你们的作业系统上运行通不通过我不知道!!!

不通过的话,看自己的  输出!!输入!!对不对!!然后自己调一下!!!特别是对于在循环里的输出对不对!!
还有程序有没有漏掉的可能情况!!!

看看自己是不是没有一个输出结果输出一行!!!
还有,自己的输!!!
是一次性输入全部编译   分次输出   还是 分次输入 分次输出
这个也很重要!!!

或者这个程序本来就是错的!!
我不对这个程序(这些代码块)负责!!不负责!!!起码题目所给给的输入我是对的......( ̄Д  ̄)┍
通不通过晚点可能会告诉大家。。。🤦‍🤦‍🤦‍
不通过的话,会对程序进行改写,,if I have more free time to fulfill this。。。

代码通过情况:




Java代码:

import java.util.*;
public class Main {
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int m = sc.nextInt();
		int[] cpu = new int[n];
		int[] moniter = new int[m];
		for (int i = 0; i < n; i++) 
		{
			cpu[i] = sc.nextInt();
		}		
		for (int i = 0; i < m; i++) 
		{
			moniter[i] = sc.nextInt();
		}				
		int temp;
		for(int i=0;i<cpu.length-1;i++)
		{
		    for(int j=0;j<cpu.length-i-1;j++)
		    {
		        if(cpu[j]<cpu[j+1])
		        {
		            temp = cpu[j];
		            cpu[j] = cpu[j+1];
		            cpu[j+1] = temp;
		        }
		    }
		}for(int i=0;i<moniter.length-1;i++)
		{
		    for(int j=0;j<moniter.length-i-1;j++)
		    {
		        if(moniter[j]<moniter[j+1])
		        {
		            temp = moniter[j];
		            moniter[j] = moniter[j+1];
		            moniter[j+1] = temp;
		        }
		    }
		}
		int count=n>m?m:n;
		int account=0;
		for(int i=0;i<count;i++)
		{
		  account+=cpu[i]*moniter[i];				
		}
		System.out.print(count+" ");	
		System.out.print(account+" ");	
				//for (int i = 0; i < n; i++) 
				//{
					//System.out.print(cpu[i]+" ") ;
				//}	
				//System.out.println(" ");
				//for (int i = 0; i < m; i++) 
				//{
					//System.out.print(moniter[i]+" ") ;
				//}
				//System.out.println(" ");			
	}
}

对题目样例输入运行结果:
在这里插入图片描述

测试代码:!!!

import java.util.*;
public class Main {
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while(sc.hasNext()) {
		int n = sc.nextInt();
		int m = sc.nextInt();
		int[] cpu = new int[n];
		int[] moniter = new int[m];
		for (int i = 0; i < n; i++) 
		{
			cpu[i] = sc.nextInt();
		}		
		for (int i = 0; i < m; i++) 
		{
			moniter[i] = sc.nextInt();
		}				
		int temp;
		for(int i=0;i<cpu.length-1;i++)
		{
		    for(int j=0;j<cpu.length-i-1;j++)
		    {
		        if(cpu[j]<cpu[j+1])
		        {
		            temp = cpu[j];
		            cpu[j] = cpu[j+1];
		            cpu[j+1] = temp;
		        }
		    }
		}for(int i=0;i<moniter.length-1;i++)
		{
		    for(int j=0;j<moniter.length-i-1;j++)
		    {
		        if(moniter[j]<moniter[j+1])
		        {
		            temp = moniter[j];
		            moniter[j] = moniter[j+1];
		            moniter[j+1] = temp;
		        }
		    }
		}
		int count=n>m?m:n;
		int account=0;
		for(int i=0;i<count;i++)
		{
		  account+=cpu[i]*moniter[i];				
		}
		System.out.print(count+" ");	
		System.out.print(account+" ");	
		//for (int i = 0; i < n; i++) 
		//{
			//System.out.print(cpu[i]+" ") ;
		//}	
		//System.out.println(" ");
		//for (int i = 0; i < m; i++) 
		//{
			//System.out.print(moniter[i]+" ") ;
		//}
		//System.out.println(" ");	
		}
		
	}
}

测试结果:

在这里插入图片描述

测试结果显示是对的🤦‍🤦‍🤦‍

起码可以提供一个程序核心或者主要代码 可能提供了而已!!
同学们自己稍微参考参考つ﹏⊂
别问我(对不对!!!),没结果!!!

q其他对于这个以及其他的程序交流,欢迎欢迎~

END END END

©️2020 CSDN 皮肤主题: 技术工厂 设计师:CSDN官方博客 返回首页