Codeforces Round #387 (Div. 2) E. Comments
来源:互联网 发布:淘宝盗图技巧不被发现 编辑:程序博客网 时间:2024/06/01 20:50
A rare article in the Internet is posted without a possibility to comment it. On a Polycarp's website each article has comments feed.
Each comment on Polycarp's website is a non-empty string consisting of uppercase and lowercase letters of English alphabet. Comments have tree-like structure, that means each comment except root comments (comments of the highest level) has exactly one parent comment.
When Polycarp wants to save comments to his hard drive he uses the following format. Each comment he writes in the following format:
- at first, the text of the comment is written;
- after that the number of comments is written, for which this comment is a parent comment (i. e. the number of the replies to this comments);
- after that the comments for which this comment is a parent comment are written (the writing of these comments uses the same algorithm).
For example, if the comments look like:
then the first comment is written as "hello,2,ok,0,bye,0", the second is written as "test,0", the third comment is written as "one,1,two,2,a,0,b,0". The whole comments feed is written as: "hello,2,ok,0,bye,0,test,0,one,1,two,2,a,0,b,0". For a given comments feed in the format specified above print the comments in a different format:
- at first, print a integer d — the maximum depth of nesting comments;
- after that print d lines, the i-th of them corresponds to nesting level i;
- for the i-th row print comments of nesting level i in the order of their appearance in the Policarp's comments feed, separated by space.
The first line contains non-empty comments feed in the described format. It consists of uppercase and lowercase letters of English alphabet, digits and commas.
It is guaranteed that each comment is a non-empty string consisting of uppercase and lowercase English characters. Each of the number of comments is integer (consisting of at least one digit), and either equals 0 or does not contain leading zeros.
The length of the whole string does not exceed 106. It is guaranteed that given structure of comments is valid.
Print comments in a format that is given in the statement. For each level of nesting, comments should be printed in the order they are given in the input.
hello,2,ok,0,bye,0,test,0,one,1,two,2,a,0,b,0
3hello test one ok bye two a b
a,5,A,0,a,0,A,0,a,0,A,0
2a A a A a A
A,3,B,2,C,0,D,1,E,0,F,1,G,0,H,1,I,1,J,0,K,1,L,0,M,2,N,0,O,1,P,0
4A K M B F H L N O C D G I P E J
The first example is explained in the statements.
题目大意:
不用看题目,直接猜题意就可以了。算是给出一个树形结构的串,让你整理一下,输出每层的串。
思路:
当时没想好怎么处理这么长的字符串读取问题,其实就是个 DFS。采用 DFS 接受保存 字符串就可以了。
AC代码:
#include<bits/stdc++.h>using namespace std;vector <string> mm[1000005];char ss[1000005];int i;int len;int maxx=1;string getss(){ string tt; tt=""; for(;i<len;i++) { if(ss[i]==',') { i++; return tt; } else { tt+=ss[i]; } }}int getdd(){ string tt; tt=""; int d=0; for(;i<len;i++) { if(ss[i]==',') { i++; for(int j=0;j<tt.length();j++) { d=d*10+tt[j]-'0'; } return d; } else { tt+=ss[i]; } } for(int j=0;j<tt.length();j++) { d=d*10+tt[j]-'0'; } return d;}void dfs(int ra){ if(maxx<ra) maxx=ra; string son=getss(); int snum=getdd(); mm[ra].push_back(son); for(int j=0;j<snum;j++) dfs(ra+1); return ;}int main(){ gets(ss); i=0; len=strlen(ss); string hh; int dd; while(i!=len) { hh=getss(); dd=getdd(); mm[1].push_back(hh); for(int j=0;j<dd;j++) { dfs(2); } } cout<<maxx<<endl; for(int j=1;j<=maxx;j++) { for(int k=0;k<mm[j].size();k++) { cout<<mm[j][k]; if(k!=mm[j].size()-1) { cout<<" "; } else { cout<<endl; } } } return 0;}
- Codeforces Round #387 (Div. 2) E. Comments
- Codeforces Round #387 (Div. 2) E. Comments
- Codeforces 405E Codeforces Round #238 (Div. 2)E
- Codeforces Round #103 (Div. 2) E题
- Codeforces Round #147 (Div. 2) E
- Codeforces Round #184 (Div. 2) D、E
- Codeforces Round #197 (Div. 2) (C~E)
- Codeforces Round #102 (Div. 2) //缺E
- Codeforces Round #104 (Div. 2) //缺E
- Codeforces Round #105 (Div. 2) //缺E
- Codeforces Round #103 (Div. 2) //缺E
- Codeforces Round #106 (Div. 2) //缺E
- Codeforces Round #223 (Div. 2) E
- Codeforces Round #229 (Div. 2) E
- Codeforces Round #139 (Div. 2) E. Unsolvable
- Codeforces Round #142 (Div. 2) E. Triangles
- Codeforces Round #256 (Div. 2) E. Divisors
- Codeforces Round #260 (Div. 2) E
- CentOS 6.6下Redis安装配置记录
- Delphi“尚未调用CoInitialize”解决方法
- Java架构师
- CVPR 2016-12-13
- ubuntu12.10上安装wine遇到的一些问题
- Codeforces Round #387 (Div. 2) E. Comments
- Codeforces 747B Mammoth's Genome Decoding(碱基对)
- Windows或Linux系统中备份和恢复MongoDB数据的教程
- 对输入的字符串中C关键词的查找统计。
- 数据结构 邻接矩阵的BFS DFS
- 自定义集合
- 2016.12.12 锋利的jQueryCH11--性能优化和技巧
- ajax异步刷新邂逅了你—innerHTML
- HDU 2539 点球大战