Районная олимпиада по информатике. 2016-2017 учебный год.


Задача F. Массив

Ограничение по времени:
2 секунда
Ограничение по памяти:
64 мегабайта

Вам дан массив $A$ длины $n$. Вы можете удалить некоторые элементы из него, при этом после всех удалении элементы должны стоять в строго возрастающем порядке. Выведите максимальную возможную длину массива после всех удалении.
Формат входного файла
Первая строка входного файла содержит целое число $N$ $(1 \le N \le 1000000)$ — длину последовательности. Вторая строка входного файла содержит $N$ целых чисел — элементы последовательности $A.$ Все элементы последовательности не превосходят 1000000000 по абсолютному значению.
Формат выходного файла
Выведите ответ к задаче.
Примеры:
Вход
4
4 1 2 3 
Ответ
3
Замечание
Необходимо удалить 4, тогда результирующий массив будет 1 2 3.
посмотреть в олимпиаде

Комментарий/решение:

пред. Правка 2   0
2018-11-20 11:58:27.0 #

asd

  0
2019-05-27 21:44:22.0 #

показать/скрыть код

пред. Правка 2   1
2019-05-27 21:45:05.0 #

  0
2019-12-02 10:33:43.0 #

Но ведь работает же :)

показать/скрыть код

  1
2022-09-18 21:36:39.0 #

#include <iostream>

using namespace std;

int main(){

int n;

cin >> n;

int arr[n];

int res[n];

res[0] = arr[0];

for (int i = 0; i < n; i++) {

cin >> arr[i];

}

int j = 0;

for (int i = 1; i < n; i++) {

if (arr[i] < res[j]) {

res[j] = arr[i];

} else {

res[++j] = arr[i];

}

}

cout << j + 1;

}

  0
2022-09-18 21:37:41.0 #

показать/скрыть код

#include <iostream>

using namespace std;

int main(){

int n;

cin >> n;

int arr[n];

int res[n];

res[0] = arr[0];

for (int i = 0; i < n; i++) {

cin >> arr[i];

}

int j = 0;

for (int i = 1; i < n; i++) {

if (arr[i] < res[j]) {

res[j] = arr[i];

} else {

res[++j] = arr[i];

}

}

cout << j + 1;

}

  1
2022-09-18 21:40:38.0 #

показать/скрыть код

  0
2022-12-12 19:25:43.0 #

#include<bits/stdc++.h>

using namespace std;

#define ll long long

stringstream f;

int main () {

ios_base::sync_with_stdio(0);

cin.tie(0);cout.tie(0);

ll n, ans=0;

cin>>n;

ll a[n];

for(ll i=0;i<n;i++)cin>>a[i];

for(ll i=0;i<n;i++){

if(a[i]>a[i+1])ans++;

}

cout<<n-ans;

}

  0
2022-12-12 19:31:11.0 #

#include<bits/stdc++.h>

using namespace std;

#define ll long long

int main () {

ios_base::sync_with_stdio(0);

cin.tie(0);cout.tie(0);

ll n, ans=0;

cin>>n;

ll a[n];

for(ll i=0;i<n;i++)cin>>a[i];

for(ll i=0;i<n;i++){

if((a[i]>a[i+1] || a[i-1]+1!=a[i]) && i>0)ans++;

}

cout<<n-ans;

}

пред. Правка 2   0
2023-12-16 02:06:36.0 #

input()

d=list(map(int, input().split()))

for i in range(len(d)):

if d[i] + 1 == d[1]:

print(len(d))

else:

d.pop(i)

print(len(d))

break