Jzoj4834 图书列表
2017-10-29 10:23
197 查看
这个题废话真多题面好长
首先看懂题意大概就做完了,完全就是模拟嘛
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int l[100]={0},w[100]={0},r[100]={0}; char s[100][100][200]={0}; char c[200]={0}; int n,m=0; bool nc(char cc){ return (cc>'9'||cc<'0')&&(cc>'Z'||cc<'A')&&cc!=' '&&cc!='/'; } inline bool c1(int a,int b){ int i=0,z=min(w[a],w[b]); for(;strcmp(s[a][i],s[b][i])==0&&i<z;++i); if(i==z){ if(w[a]>w[b]) return 1; else if(w[a]<w[b]) return 0; else if(w[a]==w[b]) return strcmp(s[a][i],s[b][i])<0; } return strcmp(s[a][i],s[b][i])<0; } inline bool eq(int j){ int i=0,z=max(w[r[j]],w[r[j+1]]); if(w[r[j]]!=w[r[j+1]]) return 0; for(;strcmp(s[r[j]][i],s[r[j+1]][i])==0&&i<=z;++i); return i>z; } int main(){ freopen("booklist.in","r",stdin); freopen("booklist.out","w",stdout); for(n=0;;++n){ c[0]=getchar(); l =w =0; while(nc(c[0])) c[0]=getchar(); while(!nc(c[l ])) c[++l ]=getchar(); r =n; c[l ]=0; if(*c=='0' && l ==1) break; for(int i=0,j,y=0;i<l ;++w ){ for(y=0,j=i;c[j]!='/';++j) s [w ][y++]=c[j]; i=j+1; } --w ; } sort(r,r+n,c1); for(int i=0;i<n;++i) if(!eq(i)) r[m++]=r[i]; for(int i=0;i<m;++i){ int no=0; for(int j=0;j<w[r[i]];++j) if(!i||(no||strcmp(s[r[i]][j],s[r[i-1]][j]))){ for(int k=j;k--;) printf(" "); puts(s[r[i]][j]); no=1; } for(int k=w[r[i]];k--;) printf(" "); puts(s[r[i]][w[r[i]]]); } }
相关文章推荐
- HTML练习---当当网最新上架图书列表页面
- 数字货币投资相关图书列表
- angularJs学习——图书列表(一):使用本地js文件数据源
- 跟老紫竹学Java-图书销售系统-我的订单列表界面orderList.jsp
- 每个程序员都应读的书-著名的计算机程序员图书列表
- 博文视点09年7月份找译者图书列表
- 如何通过豆瓣API获取图书和电影列表
- 递归方法(树状结构显示样板): 用于部门列表上下级的循环,以及图书分类中上下级循环分别显示的情况
- 图灵图书列表
- bootstrap学习笔记(2)--json数据处理(图书列表)
- 博文视点09年4月份找译者图书列表
- 第15课:ul,添加新闻信息列表ol,添加图书销售排行榜
- 博文视点09年2月份找译者图书列表
- 自定义UITableViewCell实现ibooks类似的图书列表形式
- 闲置图书列表,终于整理出一部分来了~~~
- HTML第七章上机题4----------当当网最新上架图书列表
- 自定义UITableViewCell实现ibooks类似的图书列表形式
- 统计学图书列表
- java-第九章-循环结构进阶-维护有序的图书列表