Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <vector>
- #include <iostream>
- #include <algorithm>
- #include <cmath>
- #include <string>
- #include <set>
- #include <map>
- using namespace std;
- #define re return
- #define pb push_back
- #define eb emplace_back
- #define all(x) (x).begin(), (x).end()
- #define fi first
- #define se second
- #define sqrt(x) sqrt(abs(x))
- #define pi (3.14159265358979323846264338327950288419716939937510)
- #define unique(v) v.resize(unique(all(v)) - v.begin())
- #define bipbup ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0)
- typedef vector<int> vi;
- typedef vector<vi> vvi;
- typedef pair<int, int> ii;
- typedef vector<ii> vii;
- typedef vector<string> vs;
- typedef double D;
- typedef long double ld;
- typedef long long ll;
- typedef pair<ll, ll> pll;
- typedef vector<ll> vll;
- typedef unsigned long long ull;
- //Задача: найти максимальную возрастающую подпоследоваетльность последовательности и удалить её.
- struct element
- {
- int inf;
- element* next;
- };
- element* beg, * help, * last;
- int main()
- {
- bipbup;
- setlocale(LC_ALL, "Russian");
- int n;
- cin >> n;
- beg = new element;
- beg->inf = 1337;
- //beg->next = NULL;
- last = beg;
- for (int i = 0; i < n; ++i)
- {
- help = new element;
- cin >> help->inf;
- last->next = help;
- last = help;
- }
- last->next = NULL;
- help = beg->next;
- if (n == 1)
- {
- cout << beg->next->inf;
- re 0;
- }
- int mx(0), c(1);
- element* del, * del1;
- del = del1 = beg;
- while (help->next != NULL)
- {
- if (help->next->inf > help->inf)
- c++;
- else
- {
- if (c > mx)
- {
- del1 = del;
- mx = c;
- }
- c = 1;
- del = help;
- }
- help = help->next;
- }
- if (mx < c)
- {
- mx = c;
- del1 = del;
- }
- help = del1->next;
- last = del1;
- while (mx--)
- {
- del1->next = help->next;
- delete help;
- help = del1->next;
- }
- delete help;
- last->next = del1->next;
- help = beg->next;
- if (help)
- while (help)
- {
- cout << help->inf << ' ';
- help = help->next;
- }
- else
- cout << "Вся последовательность является возрастающей! Она была полностью удалена!";
- re 0;
- }
- /**
- 12
- 1 2 3 4 1 2 3 4 5 1 2 3
- **/
Add Comment
Please, Sign In to add comment