C++标准版本问题
查看原帖
C++标准版本问题
936107
_tobi_楼主2023/9/24 18:13

贴代码,在C++11下可以AC,但是在C++98下会RE,求问是什么原因orz?难道是用到了什么新的C++特性?

#include<iostream>
#include<queue>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;



int n;
struct seq {
	vector<int> con;
	int sum;
};

queue<seq> q;
string ans[1000];
int index;



int main() {
	cin >> n;
	for (int i = 1; i < n; i++) {
		q.push({ {i},  i });
	}
	while (!q.empty()) {
		seq cur = q.front();
		q.pop();
		if (cur.sum > n) {
			continue;
		}
		if (cur.sum == n) {
			for (int i = 0; i < cur.con.size(); i++) {
				char charnum = cur.con[i] + '0';
				if (i == 0) ans[index] += charnum;
				else { 
					ans[index] += '+'; 
					ans[index] += charnum;
				}
			}
			index++;
			continue;
		}

		for (int i = cur.con.back(); i < n; i++) {
			q.push({ cur.con, cur.sum + i });
			q.back().con.push_back(i);
		}
	}
	
	sort(ans, ans + index);
	for (int i = 0; i < index ; i++) {
		cout << ans[i] << endl;
	
	}



	
	return 0;
}
2023/9/24 18:13
加载中...