Список вопросов
Как мне добавить решение на задач ?
14th February, 15:14
778
0
Что dsu(i) значит в коде "катание на коньках"
8th February, 18:16
176
1
Страна замов. Напишите программу на Python
10th December, 18:14
570
2
На листе клетчатой бумаги рисуют выпуклый 100-угольник с вершинами в узлах сетки. Какое наибольшее число диагоналей этого 100-угольника может идти по линиям сетки?
7th November, 15:29
410
0
Рассмотрим все прямоугольники, длины сторон которых выражены целым числом метров, и периметр которых (в метрах) численно равняется площади (в метрах квадратных). Найдите суммарную площадь всех таких, разных по размеру сторон, прямоугольников.Прямоугольники, отличающиеся порядком сторон, например, 10 * 20 и 20 * 10 считаем одинаковыми.
7th October, 20:57
863
0
Кто и за сколько может написать программу управления курсором?
2nd October, 23:48
581
3
Как авторизоваться на novafilm.tv при помощи cURL?
2nd October, 23:33
465
3
Верстка, position:relative создает пустое место
2nd October, 23:31
401
2
Что улучшить в переводе Apache Public License?
2nd October, 23:29
403
1
Формирование кода видео Вконтакте
2nd October, 23:23
506
3
IPad2 с 3G из Штатов?
2nd October, 23:18
455
5
А будет ли tcpdump видеть ack flood?
2nd October, 23:14
373
2
Альфа банк и странное смс мошенничество?
2nd October, 23:05
756
6
Софт для "ремонта" поврежденного h264 видео?
2nd October, 22:55
379
3
Scrapy — Python
2nd October, 22:54
388
4
Помощь с доставкой из США?
2nd October, 22:47
426
3
Создание stop-motion ролика
2nd October, 22:41
462
5
Решение задачи Последовательность - 2 с Acmp
Без пояснения   Просмотров: 462
Вася написал на доске n целых чисел ai и ушел. Пришел Петя и, увидев Васину последовательность, решил ее немного изменить. Для этого он решил, что может стирать с доски лишь те числа, у которых имеются слева и справа элементы, превосходящие их. Формально, Петя может стереть число ak, если существуют значения ai и aj такие, что ai > ak и aj > ak и i < k < j. Когда на доске не осталось чисел, которые мог стереть Петя, он ушел.
Пришел Вася и очень удивился увиденному. Напишите программу, которая выводит последовательность, которую увидел Вася.
Пришел Вася и очень удивился увиденному. Напишите программу, которая выводит последовательность, которую увидел Вася.
Код
#include using namespace std; int main() { bool f = false, temp = false; int n, jj, t; cin >> n; vector b; vector a; vector aa; vector cc; for(int i = 0; i < n; ++i){ cin >> t; b.push_back(t); a.push_back(t); } sort(b.begin(), b.end()); for(int i = 0; i < b.size(); ++i) if(b[i] != a[i]){ f = true; break; } if(!f){ cout << a.size() << endl; for(int i = 0; i < a.size(); ++i) cout << a[i] << " "; return 0; } f = false; reverse(b.begin(),b.end()); for(int i = 0; i < a.size(); ++i) if(b[i] != a[i]){ f = true; break; } if(!f){ cout << a.size() << endl; for(int i = 0; i < a.size(); ++i) cout << a[i] << " "; return 0; } f = false; b.clear(); for(int i = 0; i < a.size() - 1; ++i){ for(int j = i + 1; j < a.size(); ++j){ if(a[i] <= a[j]){ b.push_back(a[i]); if(b.size() > 1) b.pop_back(); b.push_back(a[j]); i = j; } if(j == a.size() - 1 && a[j] < a[i]) f = true; } if(f){ jj = i; temp = true; break; } } if(!b.size() && jj == 0) b.push_back(a[0]); for(int i = 0; i < b.size(); ++i) cc.push_back(b[i]); b.clear(); if(temp){ temp = false; for(int i = jj; i < a.size(); ++i) aa.push_back(a[i]); reverse(aa.begin(),aa.end()); f = false; for(int i = 0; i < aa.size() - 1; ++i){ for(int j = i + 1; j < aa.size(); ++j){ if(aa[i] <= aa[j]){ b.push_back(aa[i]); if(b.size() > 1) b.pop_back(); b.push_back(aa[j]); i = j ; } if(j == aa.size() - 1 && aa[j] < aa[i]) f = true; } if(f) break; } } if(b.size()){ b.pop_back(); for(int i = b.size() - 1; i >= 0; --i) cc.push_back(b[i]); } cout <
 
 
 
 
 
Автор: Администратор
