(UPD: 2024-12-04 14:48 UTC) Judge is not working due to Cloudflare incident. (URL) We can do nothing about it, sorry. After the incident is resolved, we will grade all submissions.

Submission #443182

#TimeUsernameProblemLanguageResultExecution timeMemory
443182mashrur_hossainGrudanje (COCI19_grudanje)C++17
70 / 70
265 ms24316 KiB
#include <bits/stdc++.h> #define fast_cin ios_base::sync_with_stdio(0); cin.tie(NULL); cerr.tie(NULL); #define endl "\n" #define dbg(x) cerr << #x << ": " << x << endl; #define DBG cerr << __LINE__ << ": I GOT STUCK\n"; using namespace std; typedef long long ll; typedef long double db; const ll mxn = 1e5 + 10; string s; ll n, q; pair<ll, ll>Q[mxn]; ll p[mxn]; bool good(ll x){ string cur = s; for(ll i = 1;i<=x;i++){ // cover till the current state cur[p[i]] = '*'; } ll pre[n+5][26]{}; // to calculate how many letters are present // pre calculate for array for(ll i = 1;i<=n;i++){ for(ll j = 0;j<26;j++) pre[i][j] = pre[i-1][j]; if(cur[i] == '*')continue;// if covered; pre[i][cur[i] - 'a']++;// counting occurence } for(ll i = 1;i<=q;i++){ // check the count of occurence of each letter in each segment for(ll j = 0;j<26;j++){ ll l = Q[i].first; ll r = Q[i].second; ll count = pre[r][j] - pre[l-1][j]; if(count > 1)return false; } } return true; } void solve(){ cin >> s; n = (ll)s.size(); s = "_" + s; cin >> q; for(ll i = 1;i<=q;i++){ ll a, b;cin >> a >> b; Q[i] = {a, b}; } for(ll i = 1;i<=n;i++)cin >> p[i]; ll l = 0, r= n; ll ans = 0; while(l<=r){ ll mid = l + (r - l)/2; if(good(mid)){ ans = mid; r = mid - 1; } else l = mid + 1; } cout << ans << endl; } // aaaaa // 2 // 1 2 // 4 5 // 2 4 1 5 3 // abbabaab // 3 // 1 3 // 4 7 // 3 5 // 6 3 5 1 4 2 7 8 int main() { fast_cin; int test;test = 1; // int test;cin >>test; while(test--){ solve(); } return 0; }
#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...