Районная олимпиада по информатике. 2016-2017 учебный год.
Задача F. Массив
Вам дан массив $A$ длины $n$. Вы можете удалить некоторые элементы из него, при этом после всех удалении элементы должны стоять в строго возрастающем порядке. Выведите максимальную возможную длину массива после всех удалении.
4 4 1 2 3Ответ
3
Комментарий/решение:
#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;
}
#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;
}
#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;
}
Возможно, что при неправильном наборе формул, они будут
доредактированы модератором. При этом содержание не будет меняться.