Portal: http://codeforces.com/problemset/problem/190/C

一道卡输入输出的蛋疼题

题意:给你一个由pair和int所组成的沙茶字符串(最大含有1e5个单词),输出合法的pair序列

这道题可以拿栈做,也就是vector或stack

呵呵 (vector==stack)=1

Examples
Input
3
pair pair int int int
Output
pair<pair<int,int>,int>
 #include<iostream>
#include<cstring>
#include<sstream>
#include<vector>
using namespace std;
#define FOR(i,j,k) for(int i=j;i<=k;i++)
#define FORD(i,j,k) for(int i=j;i>=k;i--)
#define maxn 100010
#define SZ(x) int(x.size())
int k;
int a[maxn];
pair<int,int> res[maxn];
vector<int> zz;
string s;
stringstream ss,ans;
void cq(int l)
{
if(a[l])
{
ans<<"pair<";
cq(res[l].first);
ans<<',';
cq(res[l].second);
ans<<'>';
}
else ans<<"int";
return;
}
int main()
{
getline(cin,s);
getline(cin,s);
ss<<s;
while(!ss.eof())
{
ss>>s;
a[++k]=(s=="pair");
}
FORD(i,k,)
{
if(a[i])
{
if(SZ(zz)<)
{
cout<<"Error occurred"<<endl;
return ;
}
res[i].first=zz.back();
zz.pop_back();
res[i].second=zz.back();
zz.pop_back();
}
zz.push_back(i);
}
if(SZ(zz)>) {
cout<<"Error occurred"<<endl;
return ;
}
cq();
cout<<ans.str();
return ;
}

无敌的sstream与蛋疼的getline

然后除了这个反人类的倒着处理我还写了个正着来的

 #include<iostream>
#include<cstring>
#include<sstream>
using namespace std;
#define FOR(i,j,k) for(int i=j;i<=k;i++)
#define FORD(i,j,k) for(int i=j;i>=k;i--)
#define maxn 100010
#define SZ(x) int(x.size())
string s;
stringstream ss,ans;
bool cq()
{
if(ss.eof()) return false;
ss>>s;
if(s=="pair")
{
ans<<"pair<";
if(!cq()) return false;
ans<<',';
if(!cq()) return false;
ans<<'>';
}
else ans<<"int";
return true;
} int main()
{
getline(cin,s);
getline(cin,s);
ss<<s;
if(cq()&&ss.eof()) cout<<ans.str(); else cout<<"Error occurred"<<endl;
return ;
}

爽!

总之就是各种sstream大法好啦~

#include<sstream>
stringstream ss; ss<<s;
ss>>s;
ss.eof()

CodeForces 190C STL的更多相关文章

  1. 【codeforces 190C】STL

    [题目链接]:http://codeforces.com/problemset/problem/190/C [题意] 让你根据去掉标点符号的; pair 以及 int这两种类型; 确定出一种类型; 使 ...

  2. Codeforces 997D(STL+排序)

    D. Divide by three, multiply by two time limit per test 1 second memory limit per test 256 megabytes ...

  3. Codeforces 979D (STL set)(不用Trie简单AC)

    题面: 传送门 题目大意: 给定一个空集合,有两种操作: 一种是往集合中插入一个元素x,一种是给三个数x,k,s,问集合中是否存在v,使得gcd(x,v)%k==0,且x+v<=s若存在多个满足 ...

  4. Codeforces 190C(模拟)

    坑点 不记它难解我心头之恨-- WA1:不要读错题Orz,顺序是按它给定的.那就是个类似栈的东西,重点在于输出. 然而我输出很快就模拟对了-- WA2:数据:1 int.我日了不看数据我真的去de模拟 ...

  5. Codeforces Round #285 (Div. 2) A B C 模拟 stl 拓扑排序

    A. Contest time limit per test 1 second memory limit per test 256 megabytes input standard input out ...

  6. 【中途相遇法】【STL】BAPC2014 K Key to Knowledge (Codeforces GYM 100526)

    题目链接: http://codeforces.com/gym/100526 http://acm.hunnu.edu.cn/online/?action=problem&type=show& ...

  7. 【STL】【模拟】Codeforces 696A Lorenzo Von Matterhorn

    题目链接: http://codeforces.com/problemset/problem/696/A 题目大意: 一个满二叉树,深度无限,节点顺序编号,k的儿子是k+k和k+k+1,一开始树上的边 ...

  8. Codeforces 701C They Are Everywhere(Two pointers+STL)

    [题目链接] http://codeforces.com/problemset/problem/701/C [题目大意] 给出 一个字符串,里面包含一定种类的字符,求出一个最短的子串,使得其包含该字符 ...

  9. Codeforces 799B - T-shirt buying(STL)

    题目链接:http://codeforces.com/problemset/problem/799/B 题目大意:有n件T恤,每件T体恤都分别有价格(每件衣服的价格不重复).前面的颜色.背部的颜色三种 ...

随机推荐

  1. ubuntu16.04设置开机自启服务

    网上说了开机自启有许多种方法: 1.最简单的是:在/etc/rc.local的exit 0前面加上你启动服务的脚本文件路径 注:这个脚本文件应写绝对路径! 2.网上:修改rc.local开头的#/bi ...

  2. Windows安装python包出现PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问的问题解决方案

    在python中安装sqlalchemy时,总是提示(当安装依赖有vs的python包时,可能会出现以下错误:) PermissionError: [WinError 32] 另一个程序正在使用此文件 ...

  3. freecplus框架,Linux平台下C/C++程序员提高开发效率的利器

    目录 一.freecplus框架简介 二.freecplus开源许可协议 三.freecplus框架内容 字符串操作 2.xml解析 3.日期时间 4.目录操作 5.文件操作 6.日志文件 7.参数文 ...

  4. Java自学路线图之Java框架自学

    Java自学路线图的框架分为两个阶段,第一阶段的Java框架包含六个内容:MyBatis,Spring,SpringMVC,Maven高级,Git,Dubbo. 在Java自学过程中掌握框架的使用,对 ...

  5. BrowserSync(前端利器—保存代码后,自动刷新浏览器)

    摘要 Browsersync能让浏览器实时.快速响应您的文件更改(HTML.JavaScript.CSS.Sass.Less.PHP.Python等)并自动刷新页面.更重要的是 Browsersync ...

  6. el-select下拉加载(实现懒加载)

    情况:项目出现了下拉数据量过大,出现页面卡死问题,反馈到我这:当时实现思路1.使用render函数去渲染下拉框 试了发现卡死情况依然存在,所以尝试方法2 2.使用原生js去添加下拉框的<opti ...

  7. flask连接数据库的URI书写格式

    1. MySQL mysql://username:password@hostname/database 2. PostgreSQL postgresql://username:password@ho ...

  8. vue使用lodop打印控件实现浏览器兼容打印

    前言 此控件直接进行打印底部会有水印,通过官网购买可以解决: 如不想购买,可先执行预览,弹出预览框进行打印: 需要用到的js文件和api文档附后,请注意查看. 首先需要在局部或全局引入LodopFun ...

  9. Python基础 | 关于“循环”那些事

    目录 for 循环 list range enumerate zip while 循环 while相当于if时 while充当for和if的混合体 泛循环 列表解析 map 迭代器 生成器 循环的跳出 ...

  10. Swift 4.0 字符串(String)学习

    定义字符串常量(常量只有读操作) let lString = "constant" let lString1: String = "constant" 定义字符 ...