Language: C++

// AtCoder勉強C++.cpp : このファイルには 'main' 関数が含まれています。プログラム実行の開始と終了がそこで行われます。
//

#include <iostream>
#include<iomanip>
#include <iomanip>
#include <math.h>
#include "MyClass.h"

using namespace std;
void A(), B(), C(), D();
bool subC(int*, int);
void test();
void swap(int&, int&);
void up(int&, int = 1);
void pr(char*, int); void pr(char*, double);
struct point { double x, y; };

void hogehogesuuTansaku();
int kaisuu(long long x, int tempKaisuu);
int kaisuu2(long long x, int tempKaisuu);
long long getMultiDigits(long long x);
static int tempMaxHogehoge = 0;//今の所ほげほげ数が一番大きい数（のうち一番小さい数）
static long long tempNumberOfMaxHogehoge = 0;
static long long tempMaxI;
//static int tempMaxHogehoge2 = 0;//２番めに大きい数
//static long tempNumberOfMaxHogehoge2 = 0;

#pragma region HogehogeSuu

void hogehogesuuTansaku() {
	long long max = 1000000000000;
	for (long long i = 0; i < max; i++) {
		tempMaxI = i;
		if (i % 10000000 == 0) cout << i << endl;
		if (i % 10 == 0) continue;
		int temp = kaisuu(i, 0);
		if (temp > tempMaxHogehoge) {
			//tempNumberOfMaxHogehoge2 = tempNumberOfMaxHogehoge; tempMaxHogehoge2 = tempMaxHogehoge;
			tempMaxHogehoge = temp;
			tempNumberOfMaxHogehoge = i;
		}
	}

	cout << endl;
	kaisuu2(tempNumberOfMaxHogehoge,0);
	cout << tempMaxHogehoge << ": " << tempNumberOfMaxHogehoge;
}

int kaisuu(long long x, int tempKaisuu) {
	long long a;
	
	if (x < 10) return tempKaisuu;
	if (tempKaisuu == 1 && x < tempNumberOfMaxHogehoge) return 0;//※
	//if (tempKaisuu == 2 && x < tempNumberOfMaxHogehoge2) return 0;
	return kaisuu(getMultiDigits(x), ++tempKaisuu);

	//tempNumberOfMaxHogehoge 以上の数字の探索中、一回でそれより小さい数字になってしまったような数字には
	//もう最大値（を更新する）となる可能性がない（というのもそれ以下の数字はすべてhogehoge数がmax以下なので）
}

int kaisuu2(long long x, int tempKaisuu) {
	std::cout << x << endl;
	if (x < 10) {
		return tempKaisuu;
	}
	return kaisuu2(getMultiDigits(x), ++tempKaisuu);
		

	//tempNumberOfMaxHogehoge 以上の数字の探索中、一回でそれより小さい数字になってしまったような数字には
	//もう最大値（を更新する）となる可能性がない（というのもそれ以下の数字はすべてhogehoge数がmax以下なので）
}


long long getMultiDigits(long long x) {
	int remainder = x;
	long long tempOut = 1;

	while (x != 0) {
		remainder = x % 10;
		if (remainder < 1) return 0;
		x -= remainder;
		x /= 10;
		tempOut *= remainder;
	}
	return tempOut;
}

#pragma endregion

int main()
{
	C();
}



void test() {
	int x, y;
	x = 5;
	y = x;
	cout << "value of x is " << x << endl;
	
	cout << "value of y is " << y << endl;


	cout << "address of x is " << &x << endl;
	cout << "address of y is " << &y << endl;


}


void C() {
	int N; cin >> N;
	int* H = new int[N];
	for (int i = 0; i < N; i++) cin >> H[i];

	if (subC(H, N)) cout << "yes" << endl;
	else cout << "no" << endl;

	delete[] H;
}
bool subC(int* H, int len) {
	int tempMax = 0;
	for (int i = 0; i < len - 1; i++) {
		tempMax = fmax(tempMax, H[i]);
		if (tempMax >= H[i + 1] + 2) return false;
	}
	return true;
}

void B() {
	int K, X; // X blackStone loc  K: 連続する数
	cin >> K >> X;
	int count = 0;
	for (int i = -K + 1; i <= K - 1; i++) {
		cout << i + X << " ";
		count++;
	}
	cout << endl;
	//cout << count;
}

void A() {
	
	int a, b;
	cin >> a >> b;
	int sum, pdt, minus;
	sum = a + b;
	minus = a - b;
	pdt = a * b;
	cout << std::fmax(sum, fmax(pdt, minus));
	

}

#pragma region MyRegion
	//hogehoge
void swap(int& x, int& y) {
	int temp = x;	x = y;	y = temp;

}
void up(int& x, int value) {
	x += value;
}

//void pr(char *name, int a) {
//	cout << name << " = " << dec << a << hex << ".hex(" << a << ")" << endl;
//
//}
//void pr(char *name, double x) {
//	cout << name << " = " << setprecision(20) << x << endl;
//}

#pragma endregion





// プログラムの実行: Ctrl + F5 または [デバッグ] > [デバッグなしで開始] メニュー
// プログラムのデバッグ: F5 または [デバッグ] > [デバッグの開始] メニュー

// 作業を開始するためのヒント: 
//    1. ソリューション エクスプローラー ウィンドウを使用してファイルを追加/管理します 
//   2. チーム エクスプローラー ウィンドウを使用してソース管理に接続します
//   3. 出力ウィンドウを使用して、ビルド出力とその他のメッセージを表示します
//   4. エラー一覧ウィンドウを使用してエラーを表示します
//   5. [プロジェクト] > [新しい項目の追加] と移動して新しいコード ファイルを作成するか、[プロジェクト] > [既存の項目の追加] と移動して既存のコード ファイルをプロジェクトに追加します
//   6. 後ほどこのプロジェクトを再び開く場合、[ファイル] > [開く] > [プロジェクト] と移動して .sln ファイルを選択します


Compiler output:
a.cc:8:10: fatal error: MyClass.h: No such file or directory
    8 | #include "MyClass.h"
      |          ^~~~~~~~~~~
compilation terminated.