paizaラーニングレベルアップ問題集の「加算された数列の最大値」「加算された数列の最小値」をやってみた。

paizaラーニングレベルアップ問題集の「加算された数列の最大値」「加算された数列の最小値」をやってみました。
- - -
##### 問題
###### 加算された数列の最大値
https://paiza.jp/works/mondai/loop_problems2/loop_problems2__add_maxseq
###### 加算された数列の最小値
https://paiza.jp/works/mondai/loop_problems2/loop_problems2__add_minseq
- - -
最小値の問題は、最小値を$101$以上の値で初期化します。
- $a_i$の値として制約条件の最大値$100$が与えられたとしても、$a_1+1=101$で、最小値として出力する値がこれより大きくなることはない
- - -
##### C
###### 加算された数列の最大値
```c
#include <stdio.h>

int main() {
	int n;
	scanf("%d", &n);
	int max = 0;
	for (int i = 1; i <= n; i++) {
		int a;
		scanf("%d", &a);
		a += i;
		if (a > max) max = a;
	}
	printf("%d\n", max);
	return 0;
}
```
###### 加算された数列の最小値
```c
#include <stdio.h>

int main() {
	int n;
	scanf("%d", &n);
	int min = 101;
	for (int i = 1; i <= n; i++) {
		int a;
		scanf("%d", &a);
		a += i;
		if (a < min) min = a;
	}
	printf("%d\n", min);
	return 0;
}
```
- - -
##### C++
###### 加算された数列の最大値
```cpp
#include <iostream>
//using namespace std;

int main() {
	int n;
	std::cin >> n;
	int max = 0;
	for (int i = 1; i <= n; i++) {
		int a;
		std::cin >> a;
		a += i;
		if (a > max) max = a;
	}
	std::cout << max << std::endl;
	return 0;
}
```
###### 加算された数列の最小値
```cpp
#include <iostream>
//using namespace std;

int main() {
	int n;
	std::cin >> n;
	int min = 101;
	for (int i = 1; i <= n; i++) {
		int a;
		std::cin >> a;
		a += i;
		if (a < min) min = a;
	}
	std::cout << min << std::endl;
	return 0;
}
```
- - -
##### C#
###### 加算された数列の最大値
```cs
using System;

class Program
{
	public static void Main()
	{
		int n = int.Parse(Console.ReadLine());
		int[] A = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
		int max = 0;
		for (int i = 0; i < n; i++) {
			int a = A[i] + i + 1;
			if (a > max) max = a;
		}
		Console.WriteLine(max);
	}
}
```
###### 加算された数列の最小値
```cs
using System;

class Program
{
	public static void Main()
	{
		int n = int.Parse(Console.ReadLine());
		int[] A = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
		int min = 101;
		for (int i = 0; i < n; i++) {
			int a = A[i] + i + 1;
			if (a < min) min = a;
		}
		Console.WriteLine(min);
	}
}
```
- - -
##### Go
###### 加算された数列の最大値
```go
package main
import "fmt"

func main() {
	var n int
	fmt.Scan(&n)
	max := 0
	for i := 1; i <= n; i++ {
		var a int
		fmt.Scan(&a)
		a += i
		if a > max {
			max = a
		}
	}
	fmt.Println(max)
}
```
###### 加算された数列の最小値
```go
package main
import "fmt"

func main() {
	var n int
	fmt.Scan(&n)
	min := 101
	for i := 1; i <= n; i++ {
		var a int
		fmt.Scan(&a)
		a += i
		if a < min {
			min = a
		}
	}
	fmt.Println(min)
}
```
- - -
##### Java
###### 加算された数列の最大値
```java
import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int max = 0;
		for (int i = 1; i <= n; i++) {
			int a = sc.nextInt() + i;
			if (a > max) max = a;
		}
		sc.close();
		System.out.println(max);
	}
}
```
###### 加算された数列の最小値
```java
import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int min = 101;
		for (int i = 1; i <= n; i++) {
			int a = sc.nextInt() + i;
			if (a < min) min = a;
		}
		sc.close();
		System.out.println(min);
	}
}
```
- - -
##### JavaScript
###### 加算された数列の最大値
```js
const [N, A] = require("fs").readFileSync("/dev/stdin", "utf8").trim().split('\n').map((s, i) => i ? s.split(' ').map((a, j) => Number(a) + j + 1) : Number(s));
console.log(Math.max(...A));
```
###### 加算された数列の最小値
```js
const [N, A] = require("fs").readFileSync("/dev/stdin", "utf8").trim().split('\n').map((s, i) => i ? s.split(' ').map((a, j) => Number(a) + j + 1) : Number(s));
console.log(Math.min(...A));
```
- - -
##### Kotlin
###### 加算された数列の最大値
```kotlin
import java.util.*

fun main() {
	val sc = Scanner(System.`in`)
	val n = sc.nextInt()
	var max = 0
	for (i in 1..n) {
		val a = sc.nextInt() + i
		if (a > max) max = a
	}
	sc.close()
	println(max)
}
```
###### 加算された数列の最小値
```kotlin
import java.util.*

fun main() {
	val sc = Scanner(System.`in`)
	val n = sc.nextInt()
	var min = 101
	for (i in 1..n) {
		val a = sc.nextInt() + i
		if (a < min) min = a
	}
	sc.close()
	println(min)
}
```
- - -
##### PHP
###### 加算された数列の最大値
```php
<?php
	$n = intval(fgets(STDIN));
	$A = array_map("intval", explode(' ', fgets(STDIN)));
	$max = 0;
	for ($i = 0; $i < $n; $i++) {
		$a = $A[$i] + $i + 1;
		if ($a > $max) $max = $a;
	}
	echo $max, PHP_EOL;
?>
```
###### 加算された数列の最小値
```php
<?php
	$n = intval(fgets(STDIN));
	$A = array_map("intval", explode(' ', fgets(STDIN)));
	$min = 101;
	for ($i = 0; $i < $n; $i++) {
		$a = $A[$i] + $i + 1;
		if ($a < $min) $min = $a;
	}
	echo $min, PHP_EOL;
?>
```
- - -
##### Perl
###### 加算された数列の最大値
```pl
my $n = int(<STDIN>);
my @A = map { int($_) } split ' ', <STDIN>;
my $max = 0;
for (my $i = 0; $i < $n; $i++) {
	my $a = $A[$i] + $i + 1;
	if ($a > $max) {
		$max = $a;
	}
}
print "$max$/";
```
###### 加算された数列の最小値
```pl
my $n = int(<STDIN>);
my @A = map { int($_) } split ' ', <STDIN>;
my $min = 101;
for (my $i = 0; $i < $n; $i++) {
	my $a = $A[$i] + $i + 1;
	if ($a < $min) {
		$min = $a;
	}
}
print "$min$/";
```
- - -
##### Python3
###### 加算された数列の最大値
```py
N = int(input())
A = list(map(int, input().split()))
max = 0
for i in range(N):
	a = A[i] + i + 1
	if a > max:
		max = a
print(max)
```
###### 加算された数列の最小値
```py
N = int(input())
A = list(map(int, input().split()))
min = 101
for i in range(N):
	a = A[i] + i + 1
	if a < min:
		min = a
print(min)
```
- - -
##### Ruby
###### 加算された数列の最大値
```rb
N = gets.to_i
A = gets.split.map(&:to_i)
max = 0
N.times do |i|
	a = A[i] + i + 1
	if a > max
		max = a
	end
end
p max
```
###### 加算された数列の最小値
```rb
N = gets.to_i
A = gets.split.map(&:to_i)
min = 101
N.times do |i|
	a = A[i] + i + 1
	if a < min
		min = a
	end
end
p min
```
- - -
##### Scala
###### 加算された数列の最大値
```scala
import java.util._

object Main extends App{
	val sc = new Scanner(System.in)
	val n = sc.nextInt()
	var max = 0
	for (i <- 1 to n) {
		val a = sc.nextInt() + i
		if (a > max) max = a 
	}
	sc.close()
	println(max)
}
```
###### 加算された数列の最小値
```scala
import java.util._

object Main extends App{
	val sc = new Scanner(System.in)
	val n = sc.nextInt()
	var min = 101
	for (i <- 1 to n) {
		val a = sc.nextInt() + i
		if (a < min) min = a 
	}
	sc.close()
	println(min)
}
```
- - -
##### Swift
###### 加算された数列の最大値
```swift
let n = Int(readLine()!)!
let A = readLine()!.split(separator: " ").compactMap { Int($0) }
var max = 0
for i in 0..<n {
	let a = A[i] + i + 1
	if a > max {
		max = a
	}
}
print(max)
```
###### 加算された数列の最小値
```swift
let n = Int(readLine()!)!
let A = readLine()!.split(separator: " ").compactMap { Int($0) }
var min = 101
for i in 0..<n {
	let a = A[i] + i + 1
	if a < min {
		min = a
	}
}
print(min)
```