Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
51521 | AK2022071321 | 最优子序列 | C++ | 解答错误 | 0 | 0 MS | 272 KB | 1458 | 2022-07-13 11:50:23 |
#include <bits/stdc++.h> using namespace std; string s; int n,k,t,mx=-1; bool b[3020],a=true; int main() { cin>>n>>k>>t; cin>>s; memset(b,true,sizeof(b)); int q=s.size(); for(int i=0; i<=s.size()-1; i++) { a=true; for(int j=i+1; j<=s.size(); j++) { if(s[i]==s[j]) { for(int p=i+1; p<j; p++) { if(s[p]==s[i]) { a=true; } else { a=false; } } } if(s[i]==s[j]) { /*if(j-i-1+o<=q-j+i+1 && o+j-i-1<=o+1) { y++; for(int p=i+1; p<j; p++) { b[p]=false; } q=q-j+i+1; o=j-i-1; } else { b[j]=false; q=q-1; o=o+1; } break;*/ for(int l=i+1; l<j; l++) { b[l]=false; } break; } else if(a==true) { q=j-i+1; if(q>=mx) { mx=q; } } } } int x=0; for(int i=0; i<=s.size()-1; i++) { if(b[i]==true) { x++; } } if(x>=mx) { mx=x; } if(t==0) { cout<<mx; } else { cout<<mx<<endl; for(int i=0; i<=s.size()-1; i++) { if(b[i]==true) { cout<<s[i]; } } } return 0; }