求 hark
查看原帖
求 hark
685964
shuqiang楼主2024/11/10 20:17
#include<iostream>
#include<vector>

using namespace std;

const int N = 2e5 + 10;
int t, n, d[N];
vector<int> vec1, vec2;

int main(){
	cin >> t;
	while(t--){
		cin >> n;
		for(int i = 1; i <= n; i++){
			cin >> d[i];
			if(d[i] == 1) vec1.push_back(i);
			else vec2.push_back(i);
		}
		while(vec2.size()){
			cout << vec1.back() << ' ' << vec2.back() << '\n';
			d[vec1.back()]--;
			d[vec2.back()]--;
			vec1.pop_back();
			if(d[vec2.back()] == 1){
				vec1.push_back(vec2.back());
				vec2.pop_back();
			}
		}
		cout << vec1.back() << ' ';
		vec1.pop_back();
		cout << vec1.back() << '\n';
		vec1.pop_back();
	}
	return 0;
}
2024/11/10 20:17
加载中...