3-й этап Республиканской олимпиады по информатике 2021-2022, 2 тура
Есеп A. Спорттық бағдарламаушылар
Ограничение по времени:
1 second
Ограничение по памяти:
256 megabytes
Қазақстанның спорттық бағдарламаушылар ассоциациясы жүгіруден жарыс өткізді. Жарысқа $N$ жүгіруші қатысты. Басында жүгірушілер $1$-ден $N$-ге дейін бірі артынан бірі орналасты. Жарыс басталғанда олар сол ретті бұзбай жүгіре бастады. Нөмірі $1$ болатын жүгіруші бірінші, ал нөмірі $N$ болатын жүгіруші — соңғы. Бірақ қандай жарыста ешкім ешкімді озбайды? Бір жүгірушінің бауы шешіліп кеткенде ғана олардың реті өзгере алады. Жүгіруші бауын байлап жатқанда одан кейін келе жатқан бірнеше адам оны озып кетуі мүмкін. Мысалы, $N = 5$ жүгіруші жарысқа қатысқан кезде бастапқы қатар осындай болады: $1$ $2$ $3$ $4$ $5$. Біраз уақыттан кейін $2$-ші жүгірушінің бауы шешіліп кетті дейік. Ол бауын байлап жатқан уақытта оны екі жүгіруші озып кетті дейік. Онда олардың ендігі реті осындай болады: $1$ $3$ $4$ $2$ $5$. Егер бұдан кейін $4$-ші жүгірушінің бауы шешілсе, және сол үшін оны бір адам озып кетсе, жаңа рет мынадай болады: $1$ $3$ $2$ $4$ $5$. Сізге $N$ және жүгірушілердің мәреге келген реті беріледі. Сізге ең кем дегенде неше жүгірушінің бауы шешіліп кеткенін айту керек.
Формат входного файла
Бірінші жолда бір бүтін сан $N(1 <= N <= 200000)$ — жүгірушілердің саны беріледі.
Екінші жолда $N$ бүтін сан $p_1, p_2, \ldots, p_N$($1 <= p_i <= N$, $i \neq j$ болса $p_i \neq p_j$) беріледі. Мәреге бірінші болып $p_1$ келді, екінші болып $p_2$, \ldots, соңғы болып $p_N$ келді.
Формат выходного файла
Бір бүтін сан — есептің жауабын шығарыңыз.
Примеры:
Вход 6 1 2 5 4 3 6Ответ
2Вход
3 1 2 3Ответ
0
Замечание
Бірінші мысалды қарастырайық. Басында қатар: $1$ $2$ $3$ $4$ $5$ $6$. Мүмкін жағдайлардың бірі:
$4$-ші жүгірушінің бауы шешіліп кетті, байлап жатқанда $5$ оны озып кетті. Ендігі рет: $1$ $2$ $3$ $5$ $4$ $6$ болды. Одан кейін $3$-ші жүгірушінің бауы шешіліп кетті және оны $5$ пен $4$ озып кетті. Ендігі қатар $1$ $2$ $5$ $4$ $3$ $6$ болды.
Екіден аз адамның бауы шешіліп кетсе, онда берілген қатарға қол жеткізу мүмкін емес болатынын көрсетуге болады.
(
Temirlan Satylkhanov
)
Комментарий/решение:
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> order(n);
for (int i = 0; i < n; i++) {
cin >> order[i];
}
int count = 0;
for (int i = 1; i < n; i++) {
if (order[i] < order[i-1]) {
count++;
}
}
cout << count << endl;
return 0;
}
Возможно, что при неправильном наборе формул, они будут
доредактированы модератором. При этом содержание не будет меняться.