求助,自测都没问题,但是提交全部re
查看原帖
求助,自测都没问题,但是提交全部re
574945
SCAU_anpuren楼主2021/12/11 19:53
#include<iostream>
#include<string>
#include<algorithm>
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
#include <cstring>
using namespace std;
int i;
long long sum;
int n;
char s[50000];
int f(int x)
{
	int k = 0;
	long long sum1 = 0;
	for (i = x; i < n; i++)
	{
		if (s[i] > '9' || s[i] < '0')
		{
			i--; return sum1;
		}
		else sum1 = sum1 * 10 + s[i] - '0';
	}
}
int dfs(int x)
{
	long long sum1 = 0;
	for (i = x; i < n; i++)
	{
		if (s[i] == ']') return sum1;
		else if (s[i] == 'F') sum1 += f(i + 3);
		else if (s[i] == 'B') sum1 -= f(i + 3);
		else if (s[i] == 'R')
		{
			long long sum2 = 0;
			i += 7;
			while (s[i] <= '9'&&s[i] >= '0')
			{
				sum2 = sum2 * 10 + (s[i] - '0');
				i++;
			}
			sum1 += sum2 * dfs(i);
		}
	}
}
void dd()
{
	for (i = 0; i < n; i++)
	{
		// cout<<s[i];
		if (s[i] == 'F') sum += f(i + 3);
		else if (s[i] == 'B') sum -= f(i + 3);
		else if (s[i] == 'R')
		{
			int sum1 = 0;
			i += 7;
			while (s[i] <= '9'&&s[i] >= '0')
			{
				sum1 = sum1 * 10 + s[i] - '0';
				i++;
			}
			sum += sum1 * dfs(i);
		}
	}
}
int main()
{
	char ch;
	int q = 0;
	while ((ch = getchar()) != '\n') { s[q] = ch; q++; }
	n = strlen(s);
	dd();
	if (sum < 0) cout << -sum;
	else cout << sum;
}

2021/12/11 19:53
加载中...