90分C语言代码求助
  • 板块P2628 冒险岛
  • 楼主lifu
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/5/3 19:15
  • 上次更新2024/5/3 21:14:03
查看原帖
90分C语言代码求助
1322966
lifu楼主2024/5/3 19:15
#include <stdio.h>
#include <string.h>

int main() {
    char s[1000000] = {'\0'};
    scanf("%s", s);
    int len = strlen(s);
    int n, i, a;
    scanf("%d", &n);
    int step = -1;
    
    for (i = 0; i < n; i++) {
        scanf("%d", &a);
        step += a;
        
        // 处理特殊符号'>'
        if (s[step] == '>'&&s[step+1]=='>'&&s[step+2]=='>') {
            while (s[step] == '>') {
                step++;
            }
        }
        
        // 处理特殊符号'*'
       else if (s[step] == '*'&&s[step+1]=='*'&&s[step+2]=='*') {
            int num = 0;
            while (s[step] == '*') {
                
                num++;
                step++;
            }
            step -= num * 2;
        }
        
        // 检查是否超出左边界
        if (step < 0) {
            step = 0;
        }
        // 检查是否超出右边界
        else if (step >= len) {
            step = len - 1;
        }
    }
    
    // 输出结果
    if (step < 0) {
        printf("1 %d\n", len-1);
    } else if (step >= len) {
        printf("%d 0\n", len);
    } else {
        printf("%d %d\n", step + 1, len - 1 - step);
    }
    return 0;
}
2024/5/3 19:15
加载中...