@ yinsongyiss
by YczSS @ 2016-01-25 11:11:36
@[yinsongyiss](/space/show?uid=10422)
by YczSS @ 2016-05-14 17:39:28
3个连续的<<<才前进
by clyoyo @ 2017-01-04 09:31:51
```cpp
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
char a[1000001];
int n,i,j,u,l,t,p=-1;
cin>>a>>n;
l=strlen(a);
for(i=0;i<n;i++)
{
cin>>t;
p+=t;
if(a[p]=='>'){
if(a[p+1]=='>' && a[p+2]=='>'){
p+=2;
while(a[p]=='>')
{
p++;
}
}
}
if(a[p]=='*')
{
if(a[p+1]=='*' && a[p+2]=='*'){
u=0;
while(a[p+u]=='*')
{
u++;
}
p=p-u;
}
}
if(p<0) p=0;
if(p>l-1) p=l-1;
}
cout<<p+1<<" "<<l-p-1<<endl;
return 0;
}
同问
```
by _xcc_ @ 2017-02-10 21:21:45
我也是
```cpp
var
s:ansistring;
l,i,ans,sum,p,n:longint;
map,a:array[0..1000000] of longint;
begin
readln(s);
l:=length(s);
for i:=1 to length(s) do if s[i]='>' then map[i]:=1 else if s[i]='*' then map[i]:=2 else map[i]:=0;
//for i:=1 to length(s) do write(map[i],' ');
readln(n);
for i:=1 to n do read(a[i]);
for i:=1 to n do begin
ans:=ans+a[i];
if map[ans]=1 then begin
p:=ans;sum:=0;
repeat
sum:=sum+1;
p:=p+1;
until map[p]<>1;
if sum>=2 then ans:=ans+sum;
//writeln('qianjin',sum,' weizhi',ans);writeln;
end
else if map[ans]=2 then begin
p:=ans;sum:=0;
repeat
sum:=sum+1;
p:=p+1;
until map[p]<>2;
if sum>=2 then ans:=ans-sum;
//writeln('houtui',sum,' weizhi',ans);writeln;
end;
end;
if ans>l then ans:=l else if ans<0 then ans:=0;
writeln(ans,' ',l-ans);
end.
```
by 美利坚共产党 @ 2017-07-16 22:18:14
是不是二红一紫?me too
```cpp
#include<bits/stdc++.h>
using namespace std;
string s;
int n;
long long ans;
int a[100010];
int main(){
cin>>s>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
ans+=a[i];
if(ans>s.size())
ans=s.size();
if(ans<0)
ans=0;
if(s[ans-1]=='>')
if(s[ans]=='>'&&s[ans+1]=='>')
for(;s[ans-1]=='>';ans++)
continue;
if(s[ans-1]=='*'){
if(s[ans]=='*'&&s[ans+1]=='*')
for(int j=1;;j++){
if(s[ans+j-1]!='*'){
ans-=j;
break;
}
}
}
if(ans>s.size())
ans=s.size();
if(ans<0)
ans=0;
}
cout<<ans<<" "<<s.size()-ans<<endl;
return 0;
}
```
by 松鼠党 @ 2019-06-14 14:53:01
```cpp
#include<iostream>
#include<cstdio>
#include<cstring>
#define h register int
using namespace std;
const int N=100001;
int a[N],n,now,ans,len;
string s;
struct node
{
int w;
bool v;
};
node check(int next)
{
int num=0;
node a;
if(s[next-1]=='>'){
for(h i=next;i<len;i++){
if(s[i]!='>'||i==len-1){
if(i==len-1&&s[i]=='>') num++;
if(num>=2){
a.v=1;a.w=i+1;
return a;
}
}
else if(s[i]=='>') num++;
}
}
else
{
if(s[next-1]=='*')
{
for(h i=next;i<len;i++){
if(s[i]!='*'||i==len-1){
if(i==len-1&&s[i]=='*') num++;
if(num>=2){
a.v=-1;a.w=next-(num+1);
return a;
}
}
else if(s[i]=='*') num++;
}
}
}
a.v=0,a.w=0;
return a;
}
int main()
{
cin>>s>>n;
len=s.size();
for(h i=1;i<=n;i++){
scanf("%d",&a[i]);
now+=a[i];
if(now>len) now=len;
node f;
f=check(now);
if(f.v!=0) now=f.w;
if(now>len) now=len;
if(now<1) now=1;
}
cout<<now<<' '<<len-now<<endl;
return 0;
}
```
by _NaCly_Fish @ 2019-12-30 21:34:35
70分
by _NaCly_Fish @ 2019-12-30 21:34:52
烤菇
by mushroom_knight @ 2020-08-20 23:06:35
说明有错呗
by Levi_Biff @ 2023-05-11 21:38:35