8897 | 2024. 02. 03 11:05:03 | hackemon | Kombináció (50) | cpp17 | Elfogadva 50/50 | 3ms | 3992 KiB |
#include <bits/stdc++.h>
using namespace std;
int main()
{
//freopen("be2.txt", "r", stdin);
//freopen("ki.txt", "w", stdout);
int n, k;
cin >> n >> k;
vector<int> a(k), b(k);
bool checker1 = true, checker2 = true;
for(int i = 0;i < k;i++ ) {
cin >> a[i];
b[i] = a[i];
if(a[i] != i+1) checker1 = false;
if(a[i] != n - k + i + 1) checker2 = false;
}
int pos = 0;
if(a[k - 1] + 1 <= n) {
pos = k - 1;
} else {
for(int i = k-2;i > 0;i-- ) {
if(a[i + 1] - 1 > a[i]) {
pos = i;
break;
}
}
}
a[pos]++;
for(int i = pos + 1;i < k;i++ ) {
a[i] = a[i-1] + 1;
}
for(int i = k-1;i > 0;i--) {
if(b[i] - 1 > b[i-1]) {
pos = i;
break;
} else if(i == 1) {
pos = 0;
}
}
b[pos]--;
for(int i = k - 1;i > pos;i-- ) {
b[i] = n - k + i + 1;
}
if(checker1) {
for(int i = 0;i < k;i++ ) {
cout << n - k + i + 1 << ' ';
}
} else
for(int i = 0;i < k;i++ ) {
cout << b[i] << ' ';
}
cout << endl;
if(checker2) {
for(int i = 0;i < k;i++ ) {
cout << i+1 << ' ';
}
} else
for(int i = 0;i < k;i++ ) {
cout << a[i] << ' ';
}
cout << endl;
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 50/50 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1848 KiB | |||
2 | Elfogadva | 0/0 | 3ms | 2004 KiB | |||
3 | Elfogadva | 2/2 | 2ms | 2092 KiB | |||
4 | Elfogadva | 2/2 | 3ms | 2124 KiB | |||
5 | Elfogadva | 2/2 | 2ms | 2188 KiB | |||
6 | Elfogadva | 2/2 | 3ms | 2440 KiB | |||
7 | Elfogadva | 2/2 | 3ms | 2648 KiB | |||
8 | Elfogadva | 2/2 | 3ms | 2860 KiB | |||
9 | Elfogadva | 2/2 | 3ms | 2956 KiB | |||
10 | Elfogadva | 4/4 | 3ms | 3200 KiB | |||
11 | Elfogadva | 4/4 | 3ms | 3284 KiB | |||
12 | Elfogadva | 4/4 | 3ms | 3248 KiB | |||
13 | Elfogadva | 4/4 | 3ms | 3248 KiB | |||
14 | Elfogadva | 4/4 | 3ms | 3404 KiB | |||
15 | Elfogadva | 4/4 | 3ms | 3536 KiB | |||
16 | Elfogadva | 6/6 | 3ms | 3748 KiB | |||
17 | Elfogadva | 6/6 | 3ms | 3992 KiB |