corde PAT B1070 (25 minutes)

Liens Sujet : https://pintia.cn/problem-sets/994805260223102976/problems/994805264706813952

Titre Description
donné une section de la corde, vous avez besoin de mettre les enfilées une corde. Chaque série temporelle, les deux cordes est repliée télescopiquement à nouveau ensemble comme représenté sur la Fig. La corde ainsi obtenue a été traitée comme un autre morceau de corde, vous pouvez parler à un autre morceau de corde en série pliée à nouveau. Après chaque série, deux de la longueur initiale de la corde est coupée en deux.
Insérer ici l'image Description
N donné la longueur du segment de corde, vous devez trouver la longueur maximale qu'ils enfilées une corde.

Entrée
Chaque entrée comprend un test. Chaque cas de test est donnée à la première rangée de nombre entier positif N (≦ n ≦ 10 4. ), La ligne N 2 donne un nombre entier positif, à savoir, séparés par des espaces entre la longueur initiale des segments de corde, numérique. Tout nombre entier ne dépasse pas 10 4 .

Sortie
délivre la longueur maximale de la corde peut être enfilées ensemble dans une rangée. Le résultat est arrondi au nombre entier le plus proche qui est de ne pas dépasser la longueur maximale.

entrée d' échantillon
. 8
10. 15. 4 3 12 est 13 est 15 1

Exemple de sortie
14

code

#include <cstdio>
#include <algorithm>
using namespace std;

int main() {
	int n, a[100010];
	scanf("%d", &n);
	for(int i = 0; i < n; i++) {
		scanf("%d", &a[i]);
	}
	sort(a, a + n);
	double sum = a[0];		//当只有一条绳子的时候不需要对折!(一个case)
	for(int i = 1; i < n; i++)
		sum = sum / 2 + a[i] * 1.0 / 2;
	printf("%d\n", (int)sum);
	return 0;	
}
Publié 327 articles originaux · a gagné les éloges 12 · vues 20000 +

Je suppose que tu aimes

Origine blog.csdn.net/Rhao999/article/details/105182231
conseillé
Classement