Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
51627 AK2022071329 最优子序列 C++ 运行出错 0 0 MS 92 KB 1661 2022-07-13 12:19:34

Tests(0/20):


#include<iostream> #include<fstream> using namespace std; struct str { int y; char x; }; int ans=0,n=0; str a[101212012]; void d() { for(int i=0; i<n; ++i) { if(a[i].y==0)continue; for(int j=i; j<n; ++j) { if(a[i].x==a[j].x&&a[j].y!=0&&a[i].y!=0) { int temp=0; if(i+2==j&&a[i+1].x<a[i].x) { if(a[i+1].y==a[i].y+a[j].y) { a[i].y=0; break; } else if(a[i+1].y>=a[i].y) { a[i].y=0; break; } else if(a[i+1].y>=a[j].y) { a[j].y=0; continue; } } else if(i+2==j&&a[i+1].x>a[i].x) { if(a[i+1].y==a[i].y+a[j].y) { a[j].y=0; continue; } } for(int k=i+1; k<j; ++k)temp+=a[k].y; if(a[i].y+a[j].y>temp)for(int k=i+1; k<j; ++k)a[k].y=0; else { if(a[i].y>a[j].y)a[j].y=0; else { a[i].y=0; break; } } } } } } int main() { fstream inOutFile; inOutFile.open ("seq.in"); int an,k,t; string s; scanf("%d%d%d",&an,&k,&t); cin>>s; char te='0'; for(int i=0; i<an; ++i) { if(s[i]!=te) { te=s[i]; n++; a[n-1].x=s[i]; a[n-1].y=1; } else a[n-1].y++; } d(); for(int i=0; i<n; ++i) { ans+=a[i].y; } cout<<ans<<endl; if(t==1||t==2)for(int i=0; i<n; ++i)for(int j=0; j<a[i].y; ++j)cout<<a[i].x; return 0; }


测评信息: