最大の数とその位置
一行目に n、二行目に n 個の整数が与えられる。
最大の数と、それが最初に現れる位置(1 から数える)を空白区切りで出力せよ。
- 入力
- 1 ≤ n ≤ 1,000、-1,000,000 ≤ 各数 ≤ 1,000,000
- 出力
- 最大値 位置
5 3 9 2 9 1
9 2
一行目に n、二行目に n 個の整数が与えられる。
最大の数と、それが最初に現れる位置(1 から数える)を空白区切りで出力せよ。
5 3 9 2 9 1
9 2
実行すると、これらの行が順に input()・標準入力に渡されます(実行中に入力を求めません)。
$ 準備完了
コードを入力して解くにはパソコンで開いてください。モバイルでは問題と解答を見られます。
最大値が何度も出るときは最初の位置です。
比較は > で、>= にすると最後の位置になります。
Python は max() と index() で二回走査し、ほかの言語は一回の走査で位置を覚えます。
0 始まりの番号に 1 を足します。
n = int(input())a = list(map(int, input().split()))m = max(a)print(m, a.index(m) + 1)const [n, ...a] = require("fs").readFileSync(0, "utf8").trim().split(/\s+/).map(Number);let best = 0;for (let i = 1; i < n; i++) if (a[i] > a[best]) best = i;console.log(a[best], best + 1);import { readFileSync } from "node:fs";const [n, ...a]: number[] = readFileSync(0, "utf8").trim().split(/\s+/).map(Number);let best: number = 0;for (let i = 1; i < n; i++) if (a[i] > a[best]) best = i;console.log(a[best], best + 1);import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] a = new int[n]; for (int i = 0; i < n; i++) a[i] = sc.nextInt(); int best = 0; for (int i = 1; i < n; i++) if (a[i] > a[best]) best = i; System.out.println(a[best] + " " + (best + 1)); }}using System; class Program{ static void Main() { int n = int.Parse(Console.ReadLine()); int[] a = Array.ConvertAll(Console.ReadLine().Split(' ', StringSplitOptions.RemoveEmptyEntries), int.Parse); int best = 0; for (int i = 1; i < n; i++) if (a[i] > a[best]) best = i; Console.WriteLine($"{a[best]} {best + 1}"); }}#include <algorithm>#include <iostream>#include <vector> int main() { int n; std::cin >> n; std::vector<int> a(n); for (int& x : a) std::cin >> x; int best = std::max_element(a.begin(), a.end()) - a.begin(); std::cout << a[best] << ' ' << best + 1 << '\n';}#include <stdio.h> int main(void) { int n, a[1000]; scanf("%d", &n); for (int i = 0; i < n; i++) scanf("%d", &a[i]); int best = 0; for (int i = 1; i < n; i++) if (a[i] > a[best]) best = i; printf("%d %d\n", a[best], best + 1); return 0;}n = コンソール.行読み().数に();a = コンソール.数読み();best = 0;繰り返す (i = 1; i < n; i++){ もし (a[i] > a[best]) { best = i; }}コンソール.書く(a[best] + " " + (best + 1));