2020 ganado de invierno campo de entrenamiento de base algoritmo de 6 Un par

https://ac.nowcoder.com/acm/contest/3007/A
Título Descripción

No son números enteros positivos A y B, cada colección, hay una serie N, usted tiene que construir un mapeo entre ellas

Cada par de números puede ser añadido y el N, usted tiene que hacer es maximizar el K-grande y

Todas las entradas digitales no exceda 1E8 1≤K≤N≤100,000

pensamiento

~ Codicioso   de lo que pensaba inicialmente hasta 

La primera sección es una gran K (N - K + 1) es pequeña, de modo que es más pequeño que lo más pequeño posible, para dar el último un número pequeño, y después añadiendo el resto de la escalonada, por encima del máximo + mínimo restante abajo, desde seleccionar un mínimo en el interior está la respuesta

#include <bits/stdc++.h>
using namespace std;
int n, k;
const int N = 1e5 + 10;
int a[N], b[N];
int main()
{
	scanf("%d %d", &n, &k);
	for (int i = 1; i <= n; i++){
		scanf("%d", a + i);
	}
	for (int i = 1; i <= n; i++){
		scanf("%d", b + i);
	}
	k = n - k + 1;
	sort(a + 1, a + 1 + n);
	sort(b + 1, b + 1 + n);
	vector<int> vec;
	for (int i = k, j = n; i <= n; i++, j--){
		vec.push_back(a[i] + b[j]);
	}
	sort(vec.begin(), vec.end());
	printf("%d\n", *vec.begin());
	return 0;
}

 

Publicados 204 artículos originales · elogios ganado 13 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/weixin_43701790/article/details/104331855
Recomendado
Clasificación