Liens Sujet : https://pintia.cn/problem-sets/994805342720868352/problems/994805432256675840
题目描述
Eva aime les pièces à frais virés de partout dans l'univers, y compris d'autres planètes comme Mars. Un jour , elle a visité un centre commercial universel qui pourrait accepter toutes sortes de pièces de monnaie que les paiements. Cependant, il y avait une exigence particulière du paiement: pour chaque projet de loi, elle ne pouvait utiliser exactement deux pièces de monnaie pour payer le montant exact. Depuis qu'elle a jusqu'à 10 ^ 5 pièces avec elle, elle a vraiment besoin de votre aide. Vous êtes censé lui dire, pour une somme d'argent, si elle peut trouver ou non deux pièces de monnaie à payer pour cela.
输入
Chaque fichier d'entrée contient un cas de test. Pour chaque cas, la première ligne contient 2 nombres positifs: N (≤10 ^ 5, le nombre total de pièces de monnaie) et M (≤10 ^ 3, la somme d'argent Eva doit payer). La deuxième ligne contient N valeurs faciales des pièces de monnaie, qui sont tous des nombres positifs pas plus de 500. Tous les nombres dans une ligne sont séparés par un espace.
输出
Pour chaque cas de test, une impression en ligne les deux valeurs nominales V 1 et V 2 (séparés par un espace) de telle sorte que V 1 + V 2 = V 1 M et ≤V2. Si la solution d'un tel n'est pas unique, sortie celle avec le plus petit V 1. S'il n'y a pas de solution, sortie Pas de solution à la place.
entrée d' échantillon
. 8 15
. 1. 4. 11 2 15 2. 8. 7
Exemple de sortie
411
code
#include <iostream>
#include <algorithm>
using namespace std;
int a[100010];
int main() {
int i, n, m;
scanf("%d%d", &n, &m);
for(i = 0; i < n; i++)
scanf("%d", &a[i]);
sort(a, a + n);
for(i = 0; i < n; i++) {
int j = lower_bound(a, a + n, m - a[i]) - a;
if(j != i && a[i] + a[j] == m) {
printf("%d %d\n", a[i], a[j]);
break;
}
}
if(i == n)
printf("No Solution\n");
return 0;
}