不理解为啥过不了
查看原帖
不理解为啥过不了
822661
17784328709ljh楼主2024/3/17 23:55
#include<iostream>
#include<string.h>
#include <algorithm> 
#include<map>
#include<set>
#include<deque>
#include <queue>
#include<vector>
#include<math.h>
typedef   long long LL;
using namespace std;
const int N = 1e4 + 10;
deque<int>dq;
deque<int>t;

void toget(LL n) {
	
	int c = 0;
	for (LL i = n; i > 0; i = i / 2) {
		int tv = 0;
		if (dq.size() > 0) {
		tv=dq.back();
		dq.pop_back();
		}
		c+= i%2;
		tv += c;
		c = tv / 2;
		tv = tv % 2;
		t.push_front(tv);
	}
	if(c!=0) t.push_front(c);
	while (t.size()) {
		dq.push_back(t.front());
		t.pop_front();
	}
	
	
	

}


int main() {
	int T;
	cin >> T;
	while (T--) {
		int n;
		cin >> n;
		dq.push_back(0);
		for (int i = 0; i < n; i++) {
			int a;
			cin >> a;
			if (a == 1) {
				dq.push_back(0);
			}
			else {
				cin >> a;
				toget(a);
			}
		}
		int flag=0;
		while (dq.size()) {
			int t =dq.front();
			dq.pop_front();
			if(t!=0)flag=1;
			if(flag==1)cout<<t;
		}
		if(flag==0)cout<<0;
		cout << endl;

	}
	return 0;



	
	
}

不理解为什么过不了,大佬帮帮我

2024/3/17 23:55
加载中...