10593 | 2024. 04. 06 11:47:24 | MagyarKendeSZLG | Kombináció (50) | cpp17 | Elfogadva 50/50 | 3ms | 4488 KiB |
// O(M)
#include <bits/stdc++.h>
using namespace std;
int N, M;
vector<int> after(vector<int> v) {
for (int i = M - 1 ; i >= 0; i--) {
if (v[i] < N - (M - i - 1)) {
v[i]++;
for (int j = i + 1; j < M; j++) {
v[j] = v[i] + j - i;
}
return v;
}
}
for (int i = 0; i < M; i++) {
v[i] = i + 1;
}
return v;
}
vector<int> before(vector<int> v) {
for (int i = M - 1 ; i > 0; i--) {
if (v[i - 1] + 1 < v[i]) {
v[i]--;
for (int j = i + 1; j < M; j++) {
v[j] = N - (M - j - 1);
}
return v;
}
}
if (v[0] > 1) {
v[0]--;
for (int j = 1; j < M; j++) {
v[j] = N - (M - j - 1);
}
} else {
for (int i = 0; i < N; i++) {
v[i] += N - M;
}
}
return v;
}
int main() {
cin.tie(0), ios::sync_with_stdio(0);
cin >> N >> M;
vector<int> v(M);
for (int& x : v) cin >> x;
for (int x : before(v)) cout << x << " ";
cout << "\n";
for (int x : after(v)) cout << x << " ";
cout << "\n";
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 50/50 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1828 KiB | |||
2 | Elfogadva | 0/0 | 3ms | 2024 KiB | |||
3 | Elfogadva | 2/2 | 3ms | 2236 KiB | |||
4 | Elfogadva | 2/2 | 3ms | 2452 KiB | |||
5 | Elfogadva | 2/2 | 3ms | 2668 KiB | |||
6 | Elfogadva | 2/2 | 3ms | 2884 KiB | |||
7 | Elfogadva | 2/2 | 3ms | 2976 KiB | |||
8 | Elfogadva | 2/2 | 3ms | 3116 KiB | |||
9 | Elfogadva | 2/2 | 3ms | 3340 KiB | |||
10 | Elfogadva | 4/4 | 3ms | 3552 KiB | |||
11 | Elfogadva | 4/4 | 3ms | 3636 KiB | |||
12 | Elfogadva | 4/4 | 3ms | 3668 KiB | |||
13 | Elfogadva | 4/4 | 3ms | 3876 KiB | |||
14 | Elfogadva | 4/4 | 3ms | 4080 KiB | |||
15 | Elfogadva | 4/4 | 3ms | 4316 KiB | |||
16 | Elfogadva | 6/6 | 3ms | 4400 KiB | |||
17 | Elfogadva | 6/6 | 3ms | 4488 KiB |