[JAVA] ABC --031 --A & B & C

AtCoder ABC 031 A&B&C AtCoder - 031

Un problème


	private void solveA() {
		int a = nextInt();
		int d = nextInt();
		int res = 0;
		if (a > d) {
			res = a * (d + 1);
		} else {
			res = d * (a + 1);
		}

		out.println(res);
	}

Problème B

	private void solveB() {
		int numL = nextInt();
		int numH = nextInt();
		int numN = nextInt();
		int[] wk = IntStream.range(0, numN).map(i -> nextInt()).toArray();

		for (int i : wk) {

			if (i < numL) {
				out.println(numL - i);
			} else if (numH < i) {
				out.println(-1);
			} else {
				out.println(0);
			}
		}

	}

Problème C

--Rond Il a fallu plus d'une heure pour rendre la phrase problématique significative en raison du problème de la capacité de lecture, mais ... ――Je l'ai mis en œuvre avec la politique suivante, est-ce que ça va?

  1. Tout d'abord, déterminez la position de Takahashi entre 0 et N
  2. Avec la position de Takahashi décidée, décidez où Aoki peut obtenir le point le plus élevé. 2-1. Aoki décide de l'emplacement entre 0-> N
  3. Tout en déplaçant la position de sélection d'Aoki de 0-> N, enregistrez le point de Takahashi lorsque le point d'Aoki est maximisé.
  4. La réponse est le point Takahashi maximum lorsque vous bouclez [1-3] et déplacez la position de Takahashi de 0-> N.

Je ne suis pas sûr de pouvoir obtenir à nouveau la même réponse. .. ..

	private void solveC() {
		int numN = nextInt();
		int[] wk = IntStream.range(0, numN).map(i -> nextInt()).toArray();

		int res = Integer.MIN_VALUE;

		/*
		 *Arrondissez là où Takahashi choisit
		 *La main d'Aoki est décidée en fonction de l'endroit choisi par Takahashi
		 *Devrait être. .. ..
		 * i=Le lieu de sélection de Takahashi
		 */
		for (int i = 0; i < numN; i++) {
			/*
			 * Integer.MIN_Lorsque je l'ai défini sur VALUE, la valeur était bouclée sur le côté MAX, donc ...
			 *Points de Takahashi et Aoki lorsque Takahashi sélectionne cette position
			 */
			int aokiPoint = -1000000;
			int takahashiPoint = 0;

			/*
			 *Avec la position sélectionnée de Takahashi fixée
			 *Trouvez un endroit pour choisir Aoki
			 *Cet endroit de sélection est l'endroit où le point d'Aoki est maximal
			 * i==Quand c'est j, il ne peut pas être sélectionné car il couvre Takahashi et sa main.
			 *Le point de Takahashi est l'endroit où le point d'Aoki est le plus grand
			 *
			 */
			for (int j = 0; j < numN; j++) {
				if (i == j) {
					continue;
				}
				int innerAoki = -100000;
				int innerTakahashi = 0;
				/*
				 *Le plus petit commence à la position choisie d'Aoki ou de Takahashi
				 *La position de sélection la plus large d'Aoki ou de Takahashi se termine
				 *Puisque les deux extrémités sont incluses, la fin est<=
				 */
				int cnt = 1;
				for (int k = Integer.min(i, j); k <= Integer.max(i, j); k++) {
					/*
					 *Odd est le point de Takahashi
					 *C'est même le point d'Aoki
					 */
					if ((cnt & 1) == 1) {
						innerTakahashi += wk[k];
					} else {
						innerAoki += wk[k];
					}
					cnt++;
				}
				/*
				 *Le point d'Aoki lorsque cette position est sélectionnée est
				 *S'il est plus grand que le point d'Aoki jusqu'à présent
				 *S'il est grand, le point de Takahashi est confirmé avec ceci
				 */
				if (innerAoki > aokiPoint) {
					//S'il est plus grand que le point d'Aoki jusqu'à présent, remplacez-le
					aokiPoint = innerAoki;
					//Les points d'Aoki sont plus gros qu'avant, donc les points de Takahashi sont également remplacés
					takahashiPoint = innerTakahashi;
				}
			}
			/*
			 *Le choix de ce Takahashi est-il ou non supérieur aux points précédents
			 */
			res = Integer.max(res, takahashiPoint);

		}

		out.println(res);
	}

Recommended Posts

ABC --013-A et B et C
ABC --023 --A & B & C
ABC --036-A et B et C
ABC --028 --A & B & C
ABC --015 --A & B & C
ABC --128 --A & B & C
ABC --012-A et B et C
ABC --018 --A & B & C
ABC --054 --A & B & C
ABC --017 --A & B & C
ABC --029- A & B & C
ABC --022 --A & B & C
ABC --019 --A & B & C
ABC --020 --A & B & C
ABC --030- A & B & C
ABC --127 --A & B & C
ABC --007 --A & B & C
ABC --132- A & B & C
ABC --026 --A & B & C
ABC --014- A & B & C
ABC --016 --A & B & C
ABC --011-A et B et C
ABC --031 --A & B & C
ABC --021 --A & B & C
ABC --025 --A & B & C
ABC --024 --A & B & C
ABC --027 --A & B & C
ABC --080- A & B & C
ABC --129- A & B & C & D
ABC --133- A & B & C & D
ABC --122 --A & B & C & D
ABC --125- A & B & C & D
ABC --130- A & B & C & D
ABC --126 --A & B & C & D
ABC --134- A & B & C & D & E
Concours de programmation diverta 2019 A & B & C & D
AtCoder Beginner Contest 169 A, B, C avec rubis
ABC093 C - Mêmes entiers
problème atcoder ABC115 C
AtCoder Beginner Contest 170 A, B, C jusqu'au rubis
Une personne écrivant C ++ a essayé d'écrire Java
Faire un appel SOAP en C #
Appeler les fonctions du langage C depuis Swift
NLP4J [006-034] 100 coups de traitement de langage avec NLP4J # 34 "A B"