求助, 本题只拿了10分
查看原帖
求助, 本题只拿了10分
352668
john11楼主2020/6/13 20:51
//john11
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

long long int readnum, codenum;
long long int min = 0x7fffffffffffffff;
int main(void)
{	
	long long int i, j;
	long long int lreadiss, lreadcode, lcode;
	long long int *codes, *readiss, *readcode;
	scanf("%lld %lld", &readnum, &codenum);
	codes = malloc(codenum * sizeof(long long int) + 1);
	for(i = 0; i < codenum; i++) {
		scanf("%lld", &codes[i]);
	}
	readiss = malloc(readnum * sizeof(long long int) + 1);
	readcode = malloc(readnum * sizeof(long long int) + 1);
	for(i = 0; i < readnum; i++) {
		scanf("%lld %lld", &readiss[i], &readcode[i]);
	}
	for(i = 0; i < readnum; i++) {
		lreadiss = readiss[i];
		lreadcode = readcode[i];
		for(j = 0; j < codenum; j++) {
			lcode = codes[j];
			if(lcode % (long long int)pow(10, lreadiss) == lreadcode) {
				if(lcode < min) {
					min = lcode;
				}
			} else if(j == codenum-1) {
				if(min == 0x7fffffffffffffff) {
					printf("-1\n");
				} else {
					printf("%lld\n", min);
					min = 0x7fffffffffffffff;
				}
			}
		}
	}
	free(codes);
	free(readiss);
	free(readcode);
	return 0;
}

2020/6/13 20:51
加载中...