#include <bits/stdc++.h>
#define rep(i,l,r) for(int i = l; i < r; i++)
#define pb push_back
#define X first
#define Y second
#define debug(x) cerr << #x << " : " << x << endl;
using namespace std;
typedef long long ll;
typedef pair<int, int> pll;
const long long int mod = 1e9+7,N = 25;
int n,k;
int b[N],a[N],ind[N],ind2[N];
inline bool check(vector<int> ve){
vector<pll> ve2,ve3;
rep(i,0,n) ve2.pb({ve[i],i});
int sz = n,p = 1;
memset(a,-1,sizeof a);
while (ve2.size()){
rep(i,0,sz-1){
if (ve2[i].X > ve2[i+1].X) ve3.pb(ve2[i]);
else{
a[ve2[i].Y] = p;
if (b[ve2[i].Y] != a[ve2[i].Y]) return 0;
}
}
ve3.pb(ve2[sz-1]);
p++;
if ((int)ve3.size() == sz) break;
ve2 = ve3;
sz = ve2.size();
ve3.clear();
}
rep(i,0,n)
if (a[i] != b[i]) return 0;
return 1;
}
bool cmp(vector<int> ve,vector<int> ve2){
rep(i,0,n){
ind[ve[i]] = i;
ind2[ve2[i]] = i;
}
rep(i,1,n+1){
if (ind[i] < ind2[i]) return 1;
if (ind[i] > ind2[i]) return 0;
}
return 0;
}
int main(){
cin >> n >> k;
rep(i,0,n) cin >> b[i];
vector<vector<int>> ans;
vector<int> ve;
rep(i,1,n+1) ve.pb(i);
if (check(ve)) ans.pb(ve);
while (next_permutation(ve.begin(),ve.end()))
if(check(ve))
ans.pb(ve);
if ((int)ans.size() < k){
cout << -1;
return 0;
}
sort(ans.begin(),ans.end(),cmp);
rep(i,0,n) cout << ans[k-1][i] << ' ';
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
13 ms |
332 KB |
Output is correct |
2 |
Correct |
108 ms |
292 KB |
Output is correct |
3 |
Correct |
1110 ms |
652 KB |
Output is correct |
4 |
Correct |
1002 ms |
324 KB |
Output is correct |
5 |
Correct |
994 ms |
268 KB |
Output is correct |
6 |
Correct |
98 ms |
204 KB |
Output is correct |
7 |
Correct |
994 ms |
284 KB |
Output is correct |
8 |
Correct |
1095 ms |
280 KB |
Output is correct |
9 |
Correct |
106 ms |
204 KB |
Output is correct |
10 |
Correct |
101 ms |
204 KB |
Output is correct |
11 |
Correct |
10 ms |
292 KB |
Output is correct |
12 |
Correct |
1043 ms |
276 KB |
Output is correct |
13 |
Correct |
1053 ms |
580 KB |
Output is correct |
14 |
Correct |
1059 ms |
332 KB |
Output is correct |
15 |
Correct |
1066 ms |
328 KB |
Output is correct |
16 |
Correct |
1077 ms |
456 KB |
Output is correct |
17 |
Correct |
1210 ms |
708 KB |
Output is correct |
18 |
Correct |
123 ms |
300 KB |
Output is correct |
19 |
Correct |
1004 ms |
276 KB |
Output is correct |
20 |
Correct |
1018 ms |
272 KB |
Output is correct |
21 |
Correct |
1008 ms |
284 KB |
Output is correct |
22 |
Correct |
1079 ms |
204 KB |
Output is correct |
23 |
Correct |
1010 ms |
324 KB |
Output is correct |
24 |
Correct |
1061 ms |
268 KB |
Output is correct |
25 |
Correct |
1006 ms |
324 KB |
Output is correct |
26 |
Correct |
1000 ms |
324 KB |
Output is correct |
27 |
Correct |
1022 ms |
272 KB |
Output is correct |
28 |
Correct |
1018 ms |
204 KB |
Output is correct |
29 |
Correct |
1116 ms |
460 KB |
Output is correct |
30 |
Correct |
12 ms |
332 KB |
Output is correct |
31 |
Correct |
11 ms |
296 KB |
Output is correct |
32 |
Correct |
11 ms |
292 KB |
Output is correct |
33 |
Correct |
12 ms |
296 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
13 ms |
332 KB |
Output is correct |
2 |
Correct |
108 ms |
292 KB |
Output is correct |
3 |
Correct |
1110 ms |
652 KB |
Output is correct |
4 |
Correct |
1002 ms |
324 KB |
Output is correct |
5 |
Correct |
994 ms |
268 KB |
Output is correct |
6 |
Correct |
98 ms |
204 KB |
Output is correct |
7 |
Correct |
994 ms |
284 KB |
Output is correct |
8 |
Correct |
1095 ms |
280 KB |
Output is correct |
9 |
Correct |
106 ms |
204 KB |
Output is correct |
10 |
Correct |
101 ms |
204 KB |
Output is correct |
11 |
Correct |
10 ms |
292 KB |
Output is correct |
12 |
Correct |
1043 ms |
276 KB |
Output is correct |
13 |
Correct |
1053 ms |
580 KB |
Output is correct |
14 |
Correct |
1059 ms |
332 KB |
Output is correct |
15 |
Correct |
1066 ms |
328 KB |
Output is correct |
16 |
Correct |
1077 ms |
456 KB |
Output is correct |
17 |
Correct |
1210 ms |
708 KB |
Output is correct |
18 |
Correct |
123 ms |
300 KB |
Output is correct |
19 |
Correct |
1004 ms |
276 KB |
Output is correct |
20 |
Correct |
1018 ms |
272 KB |
Output is correct |
21 |
Correct |
1008 ms |
284 KB |
Output is correct |
22 |
Correct |
1079 ms |
204 KB |
Output is correct |
23 |
Correct |
1010 ms |
324 KB |
Output is correct |
24 |
Correct |
1061 ms |
268 KB |
Output is correct |
25 |
Correct |
1006 ms |
324 KB |
Output is correct |
26 |
Correct |
1000 ms |
324 KB |
Output is correct |
27 |
Correct |
1022 ms |
272 KB |
Output is correct |
28 |
Correct |
1018 ms |
204 KB |
Output is correct |
29 |
Correct |
1116 ms |
460 KB |
Output is correct |
30 |
Correct |
12 ms |
332 KB |
Output is correct |
31 |
Correct |
11 ms |
296 KB |
Output is correct |
32 |
Correct |
11 ms |
292 KB |
Output is correct |
33 |
Correct |
12 ms |
296 KB |
Output is correct |
34 |
Incorrect |
1 ms |
204 KB |
Output isn't correct |
35 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
204 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
204 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
13 ms |
332 KB |
Output is correct |
2 |
Correct |
108 ms |
292 KB |
Output is correct |
3 |
Correct |
1110 ms |
652 KB |
Output is correct |
4 |
Correct |
1002 ms |
324 KB |
Output is correct |
5 |
Correct |
994 ms |
268 KB |
Output is correct |
6 |
Correct |
98 ms |
204 KB |
Output is correct |
7 |
Correct |
994 ms |
284 KB |
Output is correct |
8 |
Correct |
1095 ms |
280 KB |
Output is correct |
9 |
Correct |
106 ms |
204 KB |
Output is correct |
10 |
Correct |
101 ms |
204 KB |
Output is correct |
11 |
Correct |
10 ms |
292 KB |
Output is correct |
12 |
Correct |
1043 ms |
276 KB |
Output is correct |
13 |
Correct |
1053 ms |
580 KB |
Output is correct |
14 |
Correct |
1059 ms |
332 KB |
Output is correct |
15 |
Correct |
1066 ms |
328 KB |
Output is correct |
16 |
Correct |
1077 ms |
456 KB |
Output is correct |
17 |
Correct |
1210 ms |
708 KB |
Output is correct |
18 |
Correct |
123 ms |
300 KB |
Output is correct |
19 |
Correct |
1004 ms |
276 KB |
Output is correct |
20 |
Correct |
1018 ms |
272 KB |
Output is correct |
21 |
Correct |
1008 ms |
284 KB |
Output is correct |
22 |
Correct |
1079 ms |
204 KB |
Output is correct |
23 |
Correct |
1010 ms |
324 KB |
Output is correct |
24 |
Correct |
1061 ms |
268 KB |
Output is correct |
25 |
Correct |
1006 ms |
324 KB |
Output is correct |
26 |
Correct |
1000 ms |
324 KB |
Output is correct |
27 |
Correct |
1022 ms |
272 KB |
Output is correct |
28 |
Correct |
1018 ms |
204 KB |
Output is correct |
29 |
Correct |
1116 ms |
460 KB |
Output is correct |
30 |
Correct |
12 ms |
332 KB |
Output is correct |
31 |
Correct |
11 ms |
296 KB |
Output is correct |
32 |
Correct |
11 ms |
292 KB |
Output is correct |
33 |
Correct |
12 ms |
296 KB |
Output is correct |
34 |
Incorrect |
1 ms |
204 KB |
Output isn't correct |
35 |
Halted |
0 ms |
0 KB |
- |