9508 | 2024. 02. 22 13:04:35 | Vkrisztian01 | Következő permutáció (50 pont) | cpp17 | Elfogadva 50/50 | 8ms | 5840 KiB |
#include <iostream>
#include<vector>
#include<set>
#include<algorithm>
using namespace std;
int n,k,maximum=0;
vector<bool>volte;
vector<int>perm;
set<int>szabad;
int main()
{
cin>>n;
volte.assign(n+1,true);
perm.resize(n+1);
for(int i=1;i<=n;i++) cin>>perm[i];
for(int i=n;i>=1;i--)
{
volte[perm[i]]=false;
szabad.insert(perm[i]);
if(szabad.upper_bound(perm[i])==szabad.end()) continue;
k=*szabad.upper_bound(perm[i]);
perm[i]=k;
szabad.erase(k);
volte[k]=true;
for(int j=1;j<=i;j++)
{
cout<<perm[j]<<" ";
maximum=max(maximum,perm[j]);
}
for(int j=maximum-1;j>=1;j--) if(!volte[j]) cout<<j<<" ";
for(int j=maximum+1;j<=n;j++) if(!volte[j]) cout<<j<<" ";
break;
}
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 50/50 | ||||||
1 | Elfogadva | 0/0 | 3ms | 2148 KiB | |||
2 | Elfogadva | 0/0 | 4ms | 2364 KiB | |||
3 | Elfogadva | 1/1 | 3ms | 2452 KiB | |||
4 | Elfogadva | 1/1 | 3ms | 2672 KiB | |||
5 | Elfogadva | 1/1 | 3ms | 2776 KiB | |||
6 | Elfogadva | 1/1 | 3ms | 2912 KiB | |||
7 | Elfogadva | 2/2 | 3ms | 3256 KiB | |||
8 | Elfogadva | 2/2 | 3ms | 3228 KiB | |||
9 | Elfogadva | 2/2 | 3ms | 3452 KiB | |||
10 | Elfogadva | 2/2 | 3ms | 3568 KiB | |||
11 | Elfogadva | 1/1 | 3ms | 3568 KiB | |||
12 | Elfogadva | 1/1 | 3ms | 3664 KiB | |||
13 | Elfogadva | 1/1 | 3ms | 3880 KiB | |||
14 | Elfogadva | 1/1 | 3ms | 4136 KiB | |||
15 | Elfogadva | 3/3 | 3ms | 4312 KiB | |||
16 | Elfogadva | 3/3 | 3ms | 4320 KiB | |||
17 | Elfogadva | 3/3 | 3ms | 4456 KiB | |||
18 | Elfogadva | 3/3 | 3ms | 4448 KiB | |||
19 | Elfogadva | 3/3 | 4ms | 4376 KiB | |||
20 | Elfogadva | 3/3 | 6ms | 4668 KiB | |||
21 | Elfogadva | 3/3 | 6ms | 4668 KiB | |||
22 | Elfogadva | 3/3 | 7ms | 4720 KiB | |||
23 | Elfogadva | 3/3 | 7ms | 4768 KiB | |||
24 | Elfogadva | 3/3 | 7ms | 4808 KiB | |||
25 | Elfogadva | 2/2 | 8ms | 5840 KiB | |||
26 | Elfogadva | 2/2 | 7ms | 4904 KiB |