QOJ.ac
QOJ
The 2nd Universal Cup Finals is coming! Check out our event page, schedule, and competition rules!
ID | Submission ID | Problem | Hacker | Owner | Result | Submit time | Judge time |
---|---|---|---|---|---|---|---|
#1082 | #656367 | #8328. A Good Problem | ospoasa | daoqi | Failed. | 2024-10-29 13:04:35 | 2024-10-29 13:04:36 |
Details
Extra Test:
Invalid Input
input:
8 122 102 87 56 8 0 2 3
output:
result:
FAIL Integer element [index=1] equals to 122, violates the range [0, 8] (stdin, line 2)
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#656367 | #8328. A Good Problem | daoqi# | AC ✓ | 1ms | 3884kb | C++20 | 1.2kb | 2024-10-19 12:38:35 | 2024-10-19 12:38:36 |
answer
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e3 + 10;
vector<int> v[N];
vector<pair<int, int>> ans;
void dfs(int l, int r, int now) {
if (l == r) {
if (v[l].size() == 0) return;
for (int i = now; i < r; i++) {
ans.push_back({1, i});
}
return;
}
bool flag = false;
int mid = l + r >> 1;
for (int i = mid + 1; i <= r; i++) {
if (v[i].size() == 0) continue;
flag = true;
for (auto it: v[i]) ans.push_back({2, it});
}
if (flag) {
for (int i = now + 1; i <= mid; i++) {
ans.push_back({1, i});
}
}
dfs(l, mid, now);
dfs(mid + 1, r, mid + 1);
}
void solve() {
int n;
cin >> n;
for (int i = 1; i <= n; i++) {
int x;
cin >> x;
v[x].push_back(i);
}
dfs(0, n, 0);
cout << ans.size() << endl;
for (auto &[op, x]: ans) {
cout << op << ' ' << x << '\n';
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int T = 1;
// cin >> T;
cout << fixed << setprecision(20);
while (T--) {
solve();
}
return 0;
}