求助!!!玄关!!!
  • 板块灌水区
  • 楼主SuperMinecraft
  • 当前回复15
  • 已保存回复15
  • 发布时间2023/11/29 21:36
  • 上次更新2023/11/30 10:34:34
查看原帖
求助!!!玄关!!!
1073416
SuperMinecraft楼主2023/11/29 21:36

P2628

用cin>>s;80分 为什么getline(cin,s); 就0分(顺便帮忙看一下如何改)

80分

#include<bits/stdc++.h>
using namespace std;
string s;
int n,step[1000001];
bool flag;
int idx=-1;
int main(){
	cin>>s;
    cin>>n;
    for(int i=1;i<=n;i++){
    	cin>>step[i];
	}
	for(int i=1;i<=n;i++){
		idx+=step[i];
		if(s[idx]=='>'&&s[idx+1]=='>'&&s[idx+2]=='>'&&!flag){
			while(s[idx]=='>'){
				idx++;
			}
			flag=true;
		}
		if(s[idx]=='*'&&s[idx+1]=='*'&&s[idx+2]=='*'&&!flag){
			int k=0;
			while(s[idx+k]=='*'){
		        k++;
		 	}
            idx-=k;
		 	flag=true;
		}
		if(idx<0) idx=0;
		if(idx>s.length()) idx=s.length()-1;
		flag=false;
	}
	cout<<idx+1<<" "<<s.length()-idx-1<<endl;
    return 0;
}

0分

#include<bits/stdc++.h>
using namespace std;
string s;
int n,step[1000001];
bool flag;
int idx=-1;
int main(){
	getline(cin,s); 
    cin>>n;
    for(int i=1;i<=n;i++){
    	cin>>step[i];
	}
	for(int i=1;i<=n;i++){
		idx+=step[i];
		if(s[idx]=='>'&&s[idx+1]=='>'&&s[idx+2]=='>'&&!flag){
			while(s[idx]=='>'){
				idx++;
			}
			flag=true;
		}
		if(s[idx]=='*'&&s[idx+1]=='*'&&s[idx+2]=='*'&&!flag){
			int k=idx;
			while(s[k]=='*'){
		        k++;
		 	}
            idx-=k;
		 	flag=true;
		}
		if(idx<0) idx=0;
		if(idx>s.length()) idx=s.length()-1;
		flag=false;
	}
	cout<<idx+1<<" "<<s.length()-idx-1<<endl;
    return 0;
}
2023/11/29 21:36
加载中...