C. анализ рейтинга
ограничение времени 1 секунда
ограничение памяти 64mb
ввод стандартный ввод или input.txt
вывод стандартный вывод или output.txt
в этом году третий раз одна известная компания проводит соревнование по программированию искусственного интеллекта для игровых стратегий. в этот раз участникам предложили написать искусственный интеллект для командой хоккеистов. после того, как стратегия была запрограммирована, вася отправил ее в систему. проведя ряд тестовых боев, она попала в песочницу и начала сражаться со стратегиями других участников. у каждого участника песочницы есть свой рейтинг, который показывает успешность отправленного решения. после каждого системного сражения он может измениться. все колебания рейтинга можно увидеть на персональной странице участника в виде графика. анализировать данные — скучное и утомительное занятие, к тому же вася занят написанием очередной версии своей стратегии. но ему хочется узнать наиболее удачный и наиболее провальный период выступления своего искусственного интеллекта. удачным периодом вася считает такой период, когда рейтинг не понижался, а провальным, соответственно, когда рейтинг не рос. наиболее удачным периодом вася считает такой удачный период, на котором произошел наибольший рост рейтинга, а наиболее неудачным считает такой период, на котором произошло наибольшее падение. васе по исходным данным найти изменения рейтинга за эти периоды.
формат ввода
в первой строке входного файла записано целое число n (1 ≤ n ≤ 105) — количество данных. во второй строке через пробел записаны n целых неотрицательных чисел, не превосходящих 109 — величина рейтинга после каждой игры в хронологическом порядке.
формат вывода
в выходной файл выведите два числа — на сколько вырос рейтинг за наиболее удачный период и на сколько упал за наиболее провальный.
procedure Convert(V:array of integer);
begin
for var i:=0 to V.Length-1 do
if V[i]>9 then V[i]:=9
else
if V[i]<5 then V[i]:=5
end;
procedure Develop(c:char; k:integer);
begin
WritelnFormat('*** Массив {0} ***',c);
var a:=ArrRandom(k,-5,15);
Write('исходный : '); a.PrintLn(',');
Convert(a);
Write('результат: '); a.PrintLn(',');
end;
begin
var m:=ReadInteger('Количество элементов в массиве A:');
var n:=ReadInteger('Количество элементов в массиве B:');
Develop('A',m);
Develop('B',n)
end.
Тестовое решение:
Количество элементов в массиве A: 15
Количество элементов в массиве B: 10
*** Массив A ***
исходный : 6,5,-5,9,1,0,-3,9,13,12,-4,8,11,14,-5
результат: 6,5,5,9,5,5,5,9,9,9,5,8,9,9,5
*** Массив B ***
исходный : 5,12,12,4,7,9,7,-3,-1,-2
результат: 5,9,9,5,7,9,7,5,5,5
#include<iostream>
#include<cmath>
void main() {
char ch1, ch2;
int vol1, vol2;
std::cin >> ch1 >> vol1;
std::cin >> ch2 >> vol2;
if abs(ch1 - ch2) <= 2) && (abs(vol1 - vol2) <= 2)) && ((ch1 != ch2) && (vol1 != vol2))) && !((abs(ch1 - ch2)==1) && (abs(vol1-vol2))==1)) std::cout << "Possible";
else
std::cout << "Impossible";
}
3)
#include<iostream>
using namespace std;
void main() {
int n,m;
cin >> n,m;
cout<<n;
for(int i=n;i<=m;i++)
cout<<i+2;
}
4)
#include <iostream>
using namespace std; void main(){
int mass[2][4] //размерность своего массива вписывай.
{
{ 1, 2, 3, 4 }, //вписывай свои числа.
{ 1, 2, 3, 4 }
};
for (int i=0 ; i<2;++i)
{
for (int j=0 ; j<4;++j)
{
if(mass[i][j]<0)
cout<<mass[i][j];
}
}
system("pause");
}