1. 程式人生 > >Codeforces Round #426 (Div. 2)B. The Festive Evening

Codeforces Round #426 (Div. 2)B. The Festive Evening

color pac i++ bit main size -- end bits

題意:有26個城門,k個守衛,給出每個城門人進入的順序,只有當這個城門進入的人是最後一個,該城門的守衛才能去別的城門,問是否有個時間段,守衛不夠用

思路:記錄起始,模擬下

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 
 4 int l[30],r[30];
 5 int b[30];
 6 
 7 int main(){
 8     int n,m; string s;
 9     cin>>n>>m;
10     cin>>s;
11     for(int i=s.size()-1
;i>=0;i--){ 12 if(r[s[i]-A]==0) { 13 r[s[i]-A]=i; 14 } 15 16 } 17 memset(l,-1,sizeof(l)); 18 for(int i=0;i<s.size();i++){ 19 if(l[s[i]-A]==-1){ 20 l[s[i]-A]=i; 21 } 22 23 } 24 25 int Max=0; 26 for(int i=0;i<s.size();i++){
27 28 if(l[s[i]-A]==i){ 29 Max++; 30 if(Max>m) { 31 cout<<"YES"<<endl;return 0; 32 } 33 } 34 if(r[s[i]-A]==i){ 35 Max--; 36 } 37 if(Max>m) { 38 cout<<"YES
"<<endl;return 0; 39 } 40 41 } 42 cout<<"NO"<<endl;return 0; 43 }

Codeforces Round #426 (Div. 2)B. The Festive Evening