Submission #1212086

#TimeUsernameProblemLanguageResultExecution timeMemory
1212086raphaelpGrudanje (COCI19_grudanje)C++20
70 / 70
56 ms1728 KiB
#include <bits/stdc++.h> using namespace std; int main() { int N, Q; string S; cin >> S; N = S.size(); cin >> Q; vector<pair<int, int>> Tab; for (int i = 0; i < Q; i++) { int a, b; cin >> a >> b; Tab.push_back({a, b}); } sort(Tab.begin(), Tab.end()); vector<int> perm(N); for (int i = 0; i < N; i++) { int x; cin >> x; perm[x - 1] = i + 1; } vector<pair<int, int>> big(26), sec(26); int buff = 0, ans = 0; for (int i = 0; i < Q; i++) { while (buff < Tab[i].second) { int x = S[buff] - 'a'; if (sec[x].second < Tab[i].first) sec[x] = {0, 0}; if (big[x].second < Tab[i].first) big[x] = sec[x], sec[x] = {0, 0}; if (perm[buff] > sec[x].first) sec[x] = {perm[buff], buff + 1}; if (sec[x].first > big[x].first) swap(sec[x], big[x]); ans = max(ans, sec[x].first); buff++; } } cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...