BZOJ2760: [JLOI2011]小A的烦恼

 

具体思路:模拟题意就好,好像没啥坑点

AC代码

#include<bits/stdc++.h>
using namespace std;
int n,i,j,m[200],mx[200],k,maxm;
string file[111][111][111];
string answer[111][10010],S;
int main()
{
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%d",&m[i]);m[i]++;maxm=max(maxm,m[i]);
        for(j=1;j<=m[i];j++)
        {
            cin>>S;
            if(j==1)
            {
                file[i][j][1]=S;
                continue;
            }
            S=S+",";
            int len=S.length(),last=0,top=0;
            
            for(k=0;k<len;k++)
            if(S[k]==',')
            {
                top++;
                file[i][j][top]=S.substr(last,k-last);
                last=k+1;
            }
            mx[i]=max(mx[i],top);
        }
    }
    
    int now=0;
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=m[i];j++)
            for(k=1;k<=mx[i];k++)
            answer[j][now+k]=file[i][j][k];
        now+=mx[i];
    }
    for(i=1;i<=maxm;i++)
    {
        cout<<answer[i][1];
        for(j=2;j<=now;j++)cout<<','<<answer[i][j];
        puts("");
    }
    return 0;
}

 

posted @ 2018-02-24 15:57  橙子用户  阅读(157)  评论(0编辑  收藏  举报