| 17596 | 2025-08-08 01:07:39 | peti1234 | Bináris keresés | cpp17 | Elfogadva 100/100 | 23ms | 1964 KiB |
#include <bits/stdc++.h>
using namespace std;
vector<int> jo, rossz;
int n, ans[200005];
string s;
void rec(int l, int r, int kezd, int veg) {
if (kezd==veg) return;
int koz=(l+r)/2;
int pos=(kezd+veg)/2;
ans[koz]=jo[pos];
rec(l, koz, kezd, pos);
rec(koz+1, r, pos+1, veg);
}
int main() {
ios_base::sync_with_stdio(false);
int w;
cin >> w;
while (w--) {
cin >> n >> s;
for (int i=0; i<n; i++) {
if (s[i]=='1') jo.push_back(i+1);
else rossz.push_back(i+1);
}
rec(1, n+1, 0, jo.size());
for (int i=1; i<=n; i++) {
if (!ans[i]) {
ans[i]=rossz.back();
rossz.pop_back();
}
}
for (int i=1; i<=n; i++) {
cout << ans[i] << " ";
ans[i]=0;
}
cout << "\n";
jo.clear(), rossz.clear();
}
}
| Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 3/3 | ||||||
| 1 | Elfogadva | 10ms | 1780 KiB | ||||
| subtask2 | 4/4 | ||||||
| 1 | Elfogadva | 9ms | 1964 KiB | ||||
| subtask3 | 16/16 | ||||||
| 1 | Elfogadva | 1ms | 316 KiB | ||||
| subtask4 | 25/25 | ||||||
| 1 | Elfogadva | 21ms | 732 KiB | ||||
| 2 | Elfogadva | 23ms | 564 KiB | ||||
| 3 | Elfogadva | 23ms | 756 KiB | ||||
| 4 | Elfogadva | 21ms | 580 KiB | ||||
| 5 | Elfogadva | 18ms | 856 KiB | ||||
| subtask5 | 22/22 | ||||||
| 1 | Elfogadva | 8ms | 1524 KiB | ||||
| 2 | Elfogadva | 8ms | 1524 KiB | ||||
| 3 | Elfogadva | 8ms | 1524 KiB | ||||
| subtask6 | 30/30 | ||||||
| 1 | Elfogadva | 9ms | 828 KiB | ||||
| 2 | Elfogadva | 8ms | 1112 KiB | ||||