Задача Подняться на лестницу При прохождении компьютерной игры Вася дошел до финального испытания. Ему необходимо взобраться на вершину пирамиды. Вокруг пирамиды идет лестница, однако за долгие годы некоторые из ступенек этой лестницы стали слишком опасными для того, чтобы можно было на них наступать.
Вася очень аккуратно проходил все предыдущие испытания, и поэтому у него есть все подсказки о том, на какие ступеньки наступать нельзя.
Лестница состоит из N ступенек, пронумерованных от 1 до N от основания пирамиды до её вершины, и в ней K опасных ступенек. Кроме того, персонаж Васи за одну секунду может сделать один шаг и подняться на 1, 2, …S ступенек.
До прохождения испытания персонаж стоит перед первой ступенькой, а для успешного его прохождения требуется оказаться на N-ой ступеньке.
Определите минимальное и максимальное время, за которое Вася может пройти финальное испытание.
Формат входных данных
В первой строке входного файла записаны три целых числа N, K и S (1 ≤ N ≤ 200 000, 1 ≤ S 0, то во второй строке записаны K различных целых чисел ai (1 ≤ ai < N) — номера опасных ступенек. Гарантируется, что можно подняться на вершину пирамиды, не наступая на опасные ступеньки. В 80 % тестов N ≤ 1 000.
Формат выходных данных
В единственной строке выходного файла выведите два целых числа: минимальное и максимальное время, за которое Вася может пройти финальное испытание.
Условие - Найти максимальный элемент матрицы. Строку, содержащую
максимальный элемент, поменять с последней строкой матрицы.
Нумерация в матрице начинается с 0.
С++ на Code Blocks 16
Объяснение:
#include <iostream>
#include <time.h>
using namespace std;
int main()
{
int n = 8; // можно ввести любую размерность квадратной матрицы
int a[n][n];
int Nmax, Nind, i, j = 0 ;
int d;
// Заполним матрицу случайными числами в диапазоне [0 ,100)
// и сразу её выведем
cout << " ---- Array in start ---- " << endl;
srand(time(0));
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
a[i][j] = rand()%111;
cout <<a[i][j] ;
cout<< " ";
}
cout << " " << endl;
}
// Поиск максимального элемента матрицы. Для оптимизации, можно было это произвести на этапе заполнения матрицы
// но для наглядности, напишем отдельно
Nmax = 1;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++){
if (Nmax < a[i][j]) {
Nmax = a[i][j];
Nind = i;
}
}
}
cout<< "Max ["<< Nind<<"] = "<< Nmax << endl;
// Меняем строки местами
for (int j = 0; j < n; j++) {
d = a[n-1][j];
a[n-1][j]=a[Nind][j];
a[Nind][j] = d;
}
cout << " ---- Array after modify ---- " << endl;
// Выводим полученную матрицу
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++){
cout << a[i][j] ;
cout<< " ";
}
cout << " " << endl;
}
return 0;
}
2 – строка меню (команды Файл, Правка, Вид, Рисунок, Палитра и Справка);
3 - панель инструментов;
4 - палитру цветов;
5 - поле выбора ширины линии;
6 - горизонтальную и вертикальную полосы прокрутки;
7 - рабочее поле (рабочая область).
Управлять работой в графическом редакторе Paint можно посредством выбора команд из меню и пиктограмм панели инструментов. Существуют команды, вызываемые или только через меню, или только через панель инструментов.