试题“转移罪犯”和最高薪酬

这是一个xx在线笔试的题目:

1、转移罪犯,题目图片如下图:


最好感觉题目有点问题,没有理解透彻,但是一下是我自己的理解,能够达到测试样例的正确输出,

只是不知道对不对。

这个算法主要是连续扫描,满足的情况计数加一。

代码如下:

#include<iostream>
#include<math.h>
using namespace std;

int main(void)
{
	int n,t,c;
	double maxn,maxt;
	cin>>n>>t>>c;

	maxn=2*pow(10.0,5.0);
	maxt=pow(10.0,9.0);

	if(n<1||n>maxn)
	{
		cout<<"ERROR N"<<endl;
		return ;
	}

	if(t<1||t>maxt)
	{
		cout<<"ERROR T"<<endl;
		return ;
	}

	if(c<1||c>n)
    {
		cout<<"ERROR C"<<endl;
		return ;
	}

	int *a;
	a=new int[n];
	
	for(int i=0;i<n;i++)
		cin>>a[i];

	int k,j,m,count;
	count=0;
	for(j=0;j<n;j++)
	{
		k=0;
		for(m=j;m<n-1;m++)
		{
			while(a[m]<=t)
			{
				k++;
				m++;
				if(k==c)
				{	
					count++;
					break;
				}
			}
			if(a[m]>t)
				break;
		}
	}
	cout<<count<<endl;
	delete [] a;
        return 1;
}
运行结果图:


2、获得最高薪酬

题目没有读懂。

题目如图:




这是我写的代码,调试通过问题。但是考试没来得及提交上去!!!悲剧啦.

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
	int n,m,k;
	double max;
	cin>>n>>m>>k;
	max=pow(10.0,9.0);

	int h=m*k;

	if(h<1||h>n)
	{
		cout<<"ERROR (M*K)"<<endl;
		return 0;
	}

	if(n<h||n>5000)
	{
		cout<<"ERROR N"<<endl;
		return 0;
	}

	int *a;
	a=new int[n];
	
	for(int i=0;i<n;i++)
	{
		cin>>a[i];
		if(a[i]<0||a[i]>max)
		{
			cout<<"ERROR INPUT"<<endl;
		    return 0;
		}
	}

	int j,t,z,maxget,pos;
	maxget=0;
	int *maxp;
	maxp=new int[k];
	for(int p=0;p<k;p++)
		maxp[p]=0;
	
	
	t=0;
	pos=0;
	for(int p=0;p<k;p++)
	{
		for(j=0;j<n;j++)
	    {
			for(z=j;z<m+j;z++)
		    {
				t+=a[z];
			    if(maxp[p]<t)
				{ 
					maxp[p]=t;
					pos=z;
				}
			}
		    t=0;
		}
		for(int c=pos-m+1;c<=pos;c++)
			a[c]=0;
		for(int q=0;q<n;q++)
			cout<<a[q]<<" ";
		cout<<endl;
	}
	for(int p=0;p<k;p++)
		maxget+=maxp[p];

	cout<<maxget<<endl;

	delete [] maxp;
	delete [] a;

	return 0;
}
运行结果图:




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值