月赛T3求调
查看原帖
月赛T3求调
724593
Decepticon楼主2022/9/10 20:16

代码:

#include <bits/stdc++.h>
using namespace std;
int t,n[1000005];
string b[1000005];

int main(){
	cin >> t;
	for(int i = 1; i <= t; i++){
	    cin >> n[i];
	    cin >> b[i];
	}
	for(int i = 1; i <= t; i++){
		int cs = 0,ci = 0;
		int len = b[i].size();
		for(int j = 0; j < len; j++){
			if(b[i][j] == '1') cs++;
			else ci++;
		}
		if(ci == 0 || cs == 0){
			if(cs == n[i]){
			    for(int k = 1; k <= n[i]; k++){
			   	    cout << k << " ";
			    }
			    cout << endl;
			} else {
			    for(int k = n[i]; k >= 1; k--){
			   	    cout << k << " ";
			    }
			    cout << endl;
			}
		} else {
			int l = 0;
			for(int k = 1; k <= n[i]; k++){
				if(b[i][k] == '1' && b[i][k+1] != '0'){
				   cout << k << " ";
				} else {
				   cout << n[i] << " ";
				   l = k;
				   break;
				}
			}
			for(int k = n[i]-1; k >= l; k--){
				cout << k << " ";
			}
			cout << endl;
		}
	}
	return 0;
}
//p = 7 n = 10
//1111110000
//1 2 3 4 5 10 9 8 7 6
//n = 10 
//1010101010
//1 2 3 4 5 6 7 8 9 10
//2 1 4 3 6 5 8 7 10 9
//1000000111
//1 2 3 4 5 6 7 8 9 10
2022/9/10 20:16
加载中...