(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 #498983

#TimeUsernameProblemLanguageResultExecution timeMemory
498983inksamuraiGrudanje (COCI19_grudanje)C++17
70 / 70
314 ms18584 KiB
#include <bits/stdc++.h> #define fi first #define se second #define pb push_back #define sz(a) (int)a.size() #define all(a) a.begin(),a.end() #define rep(i,n) for(int i=0;i<n;i++) #define crep(i,x,n) for(int i=x;i<n;i++) #define drep(i,n) for(int i=n-1;i>=0;i--) #define vec(...) vector<__VA_ARGS__> #define _3qplfh5 ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0) using namespace std; typedef long long ll; typedef long double ld; using pii=pair<int,int>; using vi=vector<int>; using vll=vector<long long>; int main(){ _3qplfh5; string s; cin>>s; int n=sz(s); int q; cin>>q; vec(pii) qry; rep(_,q){ int l,r; cin>>l>>r; l--,r--; qry.pb({l,r}); } vi per(n); rep(i,n){ cin>>per[i]; per[i]--; } auto f=[&](int l){ vec(vi) cnt(n,vi(30)); string nes=s; rep(i,l+1){ nes[per[i]]='.'; } rep(i,n){ if(i) cnt[i]=cnt[i-1]; if(nes[i]!='.'){ cnt[i][nes[i]-'a']++; } } rep(_,sz(qry)){ int _l,_r; _l=qry[_].fi; _r=qry[_].se; rep(j,26){ if(cnt[_r][j]-(_l==0?0:cnt[_l-1][j])>1){ return false; } } } return true; }; // f(1); int l=-1,r=n-1,c=0; while(l<=r){ int m=(l+r)>>1; if(f(m)){ c=m+1; r=m-1; }else{ l=m+1; } } cout<<c<<"\n"; // 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...