@[ysj1173886760](/space/show?uid=54825) 排版啊.
by 向noip冲刺 @ 2018-06-26 06:27:40
@[向noip冲刺](/space/show?uid=97385) emm怎么排版呢..
by ysj1173886760 @ 2018-06-26 12:28:28
@[ysj1173886760](/space/show?uid=54825)
加上```cpp这句话
然后贴上代码然后再打
```
这句话
by 向noip冲刺 @ 2018-06-26 14:27:44
再打``` @[ysj1173886760](/space/show?uid=54825)
by 向noip冲刺 @ 2018-06-26 14:28:00
@[向noip冲刺](/space/show?uid=97385)
```cpp
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
int a,b,n,tot;
struct aa
{
int len,id,cnt;
}rec[600005];
int c[200005];
void work(int x,int len)
{
int now=1,sum=0;
for(int i=x;i>=x-len+1;i--)
{
sum+=now*c[i];
now*=3;
}
rec[sum].len=len;
rec[sum].id=sum;
rec[sum].cnt++;
}
bool cmp(const aa &a,const aa &b)
{
if(a.cnt==b.cnt)
{
if(a.len==b.len)return a.id<b.id;
return a.len<b.len;
}
return a.cnt>b.cnt;
}
void tran(int x)
{
int leng=0,temp[50];
while(x)
{
leng++;
temp[leng]=x%3;
x/=3;
}
for(int i=leng;i>=1;i--)cout<<temp[i]-1;
}
int main()
{
cin>>a>>b>>n;
string temp;
while(cin>>temp)
{
for(int i=0;i<temp.size();i++)
{
tot++;
if(temp[i]=='1')c[tot]=2;
else c[tot]=1;
}
}
b=min(tot,b);
for(int i=a;i<=b;i++)
for(int j=tot;j>=i;j--)
work(j,i);
sort(rec+1,rec+500000,cmp);
int now=1;
int m=0;
for(int i=1;i<=500000;i++)
{
if(rec[i].cnt==0)break;
m++;
}
for(int i=1;i<=n;i++)
{
cout<<rec[now].cnt<<endl;
int t=0;
for(int j=now;j<=m;j++)
{
if(rec[j].cnt==rec[now].cnt)
{
tran(rec[j].id);
if(j==m)
{
cout<<endl;
return 0;
}
cout<<" ";
t++;
if(t%6==0)cout<<endl;
}
else
{
now=j;
break;
}
}
if(t%6!=0)cout<<endl;
}
return 0;
}
```
by ysj1173886760 @ 2018-06-27 12:47:22