[csp-201403-3]命令行选项
#include<bits/stdc++.h>
//#include <sstream> // if want to use stringstream
using namespace std; const int N=; struct node{
string c;
bool has_c,can_has_c,bk,vis;
}a[N];
string s,c;
int sl; void init()
{
getline(cin,s);
sl=s.size();
for(int i=;i<=;i++) a[i].bk=,a[i].vis=,a[i].can_has_c=,a[i].has_c=;
for(int i=;i<sl;i++)
{
int now=s[i]-'a'+;
a[now].bk=;
a[now].can_has_c=;
if(i+<sl && s[i+]==':')
{
i++;
a[now].can_has_c=;
}
}
} void getnext()
{
c="";
while(sl<s.size())
{
if(s[sl]==' ' || s[sl]=='\n') {sl++;break;}
c+=s[sl];sl++;
//if(!((s[sl]>='a' && s[sl]<='z') || (s[sl]>='0' && s[sl]<='9') || s[sl]=='-')) {sl++;break;}
}
} void solve()
{
for(int i=;i<=;i++) a[i].has_c=,a[i].vis=;
sl=;
getline(cin,s);
getnext();
while()
{
getnext();
if(c.size()==) return;
if(c[]=='-')
{
int now=c[]-'a'+;
if(!a[now].bk) return;
a[now].vis=;
if(a[now].can_has_c)
{
getnext();
if(c.size()==)
{
if(!a[now].has_c) a[now].vis=;
return ;
}
a[now].has_c=;
a[now].c=c;
}
}
else return ;
}
} void output()
{
for(int i=;i<=;i++)
{
if(a[i].vis) printf(" -%c",i-+'a');
if(a[i].has_c) cout << ' ' << a[i].c;
}
cout << endl;
} int main()
{
//freopen("a.in","r",stdin);
init();
int T;
scanf("%d",&T);getline(cin,s);
for(int TT=;TT<=T;TT++)
{
printf("Case %d:",TT);
solve();
output();
}
return ;
}
[csp-201403-3]命令行选项的更多相关文章
- Maven学习(四)Maven 命令行选项
说明: 1.使用-选项时,和后面的参数之间可以不要空格.而使用--选项时,和后面的参数之 间必须有空格.如下面的例子: $ mvn help:describe -Dcmd=compiler:co ...
- 学习笔记——Maven 命令行选项
2014-10-09:更新裁剪反应堆具体用法 说明: 1.使用-选项时,和后面的参数之间可以不要空格.而使用--选项时,和后面的参数之 间必须有空格.如下面的例子: $ mvn help:des ...
- Microsoft Windows Installer 工具 Msiexec.exe 的命令行选项
摘自:http://support.microsoft.com/kb/314881/zh-cn 概要 本文列出了 Windows Installer 工具 Msiexec.exe 的命令行选项.Msi ...
- make的命令行选项
make的命令行选项 -b -m 忽略,提供其它版本make兼容性. -B --always-make 强制重建所有规则的目标,不根据规则的依赖描述决定是否重建目标文件. -C DIR --direc ...
- PhantomJS命令行选项
支持命令行选项有: --help或-h列出所有可能的命令行选项.立即停止,不会运行一个脚本作为参数传递. --version或-v打印的版本PhantomJS.立即停止,不会运行一个脚本作为参数传递. ...
- 【Python】【自动化测试】【pytest】【常用命令行选项】
https://www.cnblogs.com/cnkemi/p/9989019.html http://www.cnblogs.com/cnkemi/p/10002788.html pytest 常 ...
- python 解析命令行选项
问题: 程序如何能够解析命令行选项 解决方案 argparse 模块可被用来解析命令行选项 argparse 模块 argparse 模块是标准库中最大的模块之一,拥有大量的配置选项 dest 参数指 ...
- Ruby 命令行选项
Ruby 命令行选项 Ruby 一般是从命令行运行,方式如下: $ ruby [ options ] [.] [ programfile ] [ arguments ... ] 解释器可以通过下列选项 ...
- CCF CSP 201403-3 命令行选项
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201403-3 命令行选项 问题描述 请你写一个命令行分析程序,用以分析给定的命令行里包含哪些 ...
- CSP 命令行选项(201403-3)
问题描述 请你写一个命令行分析程序,用以分析给定的命令行里包含哪些选项.每个命令行由若干个字符串组成,它们之间恰好由一个空格分隔.这些字符串中的第一个为该命令行工具的名字,由小写字母组成,你的程序不用 ...
随机推荐
- express入门学习(一)
一.安装express cnpm || npm install express --save ; 1. Hello World var express = require('express'); ...
- webpack命令局部运行的几种方法
webpack命令局部运行的几种方法 1. 第一种,先全局安装webpack 命令:npm install -g webpack 然后再在项目内安装 命令:npm install webpack ...
- 【高级】PHP-FPM和Nginx的通信机制
PHP-FPM 介绍 CGI 协议与 FastCGI 协议 每种动态语言( PHP,Python 等)的代码文件需要通过对应的解析器才能被服务器识别,而 CGI 协议就是用来使解释器与服务器可以互相通 ...
- 解决多进程中APScheduler重复运行的问题
转自:http://blog.csdn.net/raptor/article/details/69218271 问题 在一个Python web应用中需要定时执行一些任务,所以用了APSchedule ...
- 计算机网络【3】—— IP地址分类与子网划分
一.IP地址分类
- 【Java并发编程】之八:多线程环境中安全使用集合API
在集合API中,最初设计的Vector和Hashtable是多线程安全的.例如:对于Vector来说,用来添加和删除元素的方法是同步的.如果只有一个线程与Vector的实例交互,那么,要求获取和释放对 ...
- C++ STL 常用遍历算法
C++ STL 常用遍历算法 STL的容器算法迭代器的设计理念 1) STL的容器通过类模板技术,实现数据类型和容器模型的分离 2) STL的迭代器技术实现了遍历容器的统一方法:也为STL的算法提供了 ...
- Web前端开发神器--WebStorm(JavaScript 开发工具) 8.0.3 中文汉化破解版
WebStorm(JavaScript 开发工具) 8.0.3 中文汉化破解版 http://www.jb51.net/softs/171905.html WebStorm 是jetbrains公司旗 ...
- 【UOJ#80】二分图最大权匹配(KM)
题面 UOJ 题解 模板qaq #include<iostream> #include<cstdio> #include<cstdlib> #include< ...
- 洛谷 P1972 [SDOI2009]HH的项链 解题报告
P1972 [SDOI2009]HH的项链 题目描述 HH 有一串由各种漂亮的贝壳组成的项链.HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义.HH 不断 ...