Catalog
cyclic shift
Content : simple math
Answer:
#include <iostream>
using namespace std;
int main(){
int t; cin >> t;
while(t--){
int n, k; cin >> n >> k;
if(k == 1) for(int i = 0; i < n; i++) cout << i + 1 << " ";
else if(k == n) for(int i = 0; i < n; i++) cout << 1 << " ";
else cout << -1;
cout << "\n";
}
}
MEX
Content : null
Answer:
#include<iostream>
#include <vector>
using namespace std;
int main()
{
int c; cin>>c;
while(c--){
int n; cin>> n;
vector<int> a(n),has(n+1),p(n);
for(int& i: a) cin>>i;
int mex=0;
for(int i=0;i<n;i++){
if(a[i]>0){
p[i]=mex;
}
else{
p[i]=mex-a[i];
}
has[p[i]]=true;
while(has[mex]) mex++;
}
for(int i: p) cout << i << " " ;
cout<<endl;
}
return 0;
}