#include <vector>
#include <set>
#include <cstdio>
int main() {
int perel;
scanf("%d", &perel);
std::vector<int> naszyjnik;
naszyjnik.reserve(perel);
int najpiekniejsza=0;
std::set<int> zachwycajace;
for (int i=0; i<perel; ++i) {
int perla;
scanf("%d", &perla);
naszyjnik.emplace_back(perla);
if (najpiekniejsza < perla) {
zachwycajace.insert(perla);
najpiekniejsza = perla;
}
}
size_t wynik = 0;
for (int i=perel-1; 0<=i; --i) {
wynik = std::max(wynik, zachwycajace.size());
while (!zachwycajace.empty() && *zachwycajace.begin() <= naszyjnik[i]) {
zachwycajace.erase(zachwycajace.begin());
}
zachwycajace.insert(naszyjnik[i]);
}
printf("%lu\n", wynik);
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #include <vector> #include <set> #include <cstdio> int main() { int perel; scanf("%d", &perel); std::vector<int> naszyjnik; naszyjnik.reserve(perel); int najpiekniejsza=0; std::set<int> zachwycajace; for (int i=0; i<perel; ++i) { int perla; scanf("%d", &perla); naszyjnik.emplace_back(perla); if (najpiekniejsza < perla) { zachwycajace.insert(perla); najpiekniejsza = perla; } } size_t wynik = 0; for (int i=perel-1; 0<=i; --i) { wynik = std::max(wynik, zachwycajace.size()); while (!zachwycajace.empty() && *zachwycajace.begin() <= naszyjnik[i]) { zachwycajace.erase(zachwycajace.begin()); } zachwycajace.insert(naszyjnik[i]); } printf("%lu\n", wynik); } |
English