首页 > 9.7贝壳笔试算法第三题搬砖AC代码分享
头像
手艺人小2
编辑于 2020-09-07 19:26
+ 关注

9.7贝壳笔试算法第三题搬砖AC代码分享

#include <bits/stdc++.h>
using  namespace std;

#define maxn 1005

int w[maxn];
int mark[maxn]; //记录0-1000数,每个数在w中对应的最近的数 

int main()
{
	int T;
	scanf("%d", &T);
	while(T--) {
		int n;
		scanf("%d", &n);
		for(int i=0; i<n; i++) scanf("%d", &w[i]);
		int minNum = maxn;
		map<int,int> hashw; //记录相同数的最小下标
		for(int i=1; i<=n; i++) {
			if(hashw.find(w[i-1]) == hashw.end()) hashw[w[i-1]] = i;
			minNum = min(minNum, w[i-1]);
		}

		int tmp = 0;
		for(int i=0; i<=1000; i++) {
			if(hashw.find(i) != hashw.end()) {
				mark[i] = i;
				tmp = i;
			} else {
				mark[i] = tmp;
			}
		}
		
		
		int q;
		scanf("%d", &q);
		int x,y,z;
		while(q--) {
			scanf("%d%d%d", &x, &y, &z);
			int work = x*y*z;

			if(work < minNum) printf("-1\n");
			else {
				printf("%d %d\n", hashw[mark[work]], mark[work]);
			}
		}
	}
    return 0;
}

全部评论

(1) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐