博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces Round #297 (Div. 2)B. Pasha and String 前缀和
阅读量:5064 次
发布时间:2019-06-12

本文共 2439 字,大约阅读时间需要 8 分钟。

B. Pasha and String

Time Limit: 2 Sec  Memory Limit: 256 MB
Submit: xxx  Solved: 2xx

题目连接

http://codeforces.com/contest/525/problem/B

Description

Pasha got a very beautiful string s for his birthday, the string consists of lowercase Latin letters. The letters in the string are numbered from 1 to |s| from left to right, where |s| is the length of the given string.

Pasha didn't like his present very much so he decided to change it. After his birthday Pasha spent m days performing the following transformations on his string — each day he chose integer ai and reversed a piece of string (a segment) from position ai to position |s| - ai + 1. It is guaranteed that ai ≤ |s|.

You face the following task: determine what Pasha's string will look like after m days.

Input

The first line of the input contains Pasha's string s of length from 2 to 2·105 characters, consisting of lowercase Latin letters.

The second line contains a single integer m (1 ≤ m ≤ 105) —  the number of days when Pasha changed his string.

The third line contains m space-separated elements ai (1 ≤ ai; ai ≤ |s|) — the position from which Pasha started transforming the string on the i-th day.

Output

In the first line of the output print what Pasha's string s will look like after m days.

Sample Input

Input
abcdef 1 2
 
Input
vwxyz 2 2 2
 
Input
abcdef 3 1 2 3

Sample Output

Output
aedcbf
Output
vwxyz
Output
fbdcea

HINT

 

 

题意:

给你一个字符串,然后给你一个数字i,然后i到s.size()-i直接的位置全部翻转,然后问你m次操作之后,是什么样子

 

题解:

首先,只有翻转奇数次和翻转偶数次两种情况,我们用一个类似前缀和的操作,就可以处理出这个位置究竟翻转了多少次,然后输出就好啦

 

~\(≧▽≦)/~啦啦啦,这道题完啦

 

代码:

 

//qscqesze#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
typedef long long ll;using namespace std;//freopen("D.in","r",stdin);//freopen("D.out","w",stdout);#define sspeed ios_base::sync_with_stdio(0);cin.tie(0)#define maxn 400010#define mod 10007#define eps 1e-9//const int inf=0x7fffffff; //无限大const int inf=0x3f3f3f3f;/**///**************************************************************************************inline ll read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){ if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f;}int flag[maxn];int main(){ string s; cin>>s; int n; cin>>n; for(int i=0;i

 

转载于:https://www.cnblogs.com/qscqesze/p/4371790.html

你可能感兴趣的文章
jdk1.8 api 下载
查看>>
getElement的几中属性介绍
查看>>
HTML列表,表格与媒体元素
查看>>
雨林木风 GHOST_XP SP3 快速装机版YN12.08
查看>>
java对象的深浅克隆
查看>>
数据结构3——浅谈zkw线段树
查看>>
Introduction to my galaxy engine 2: Depth of field
查看>>
Python 3.X 练习集100题 05
查看>>
设计器 和后台代码的转换 快捷键
查看>>
Monkey测试结果分析
查看>>
浅谈C++底层机制
查看>>
STL——配接器、常用算法使用
查看>>
第9课 uart
查看>>
Range和xrange的区别
查看>>
STL容器之vector
查看>>
无法向会话状态服务器发出会话状态请求
查看>>
数据中心虚拟化技术
查看>>
01入门
查看>>
复习文件操作
查看>>
SQL Server 使用作业设置定时任务之一(转载)
查看>>