#include <bits/stdc++.h>
#include "swaps.h"
using namespace std;
using ll=long long;
using vll=vector<long long>;
const ll inf=LONG_LONG_MAX;
void solve(int n,int v)
{
vector<int> ans;
for(int i=1;i<=n;i++)
ans.push_back(i);
vector<vll> swaps;
for(int p=1;p<n;p<<=1)
{
for(int k=p;k>=1;k>>=1)
{
vector<vll>().swap(swaps);
for(int j=k%p;j<=n-1-k;j+=k+k)
{
for(int i=0;i<=min(k-1,n-j-k-1);i++)
{
if((i+j)/(p*2)==(i+j+k)/(p*2))
{
schedule(ans[i+j],ans[i+j+k]);
swaps.push_back(vll({i+j,i+j+k}));
}
}
}
vector<int> res = visit();
for(int i=0;i<res.size();i++)
{
if(res[i]==0)
swap(ans[swaps[i][0]],ans[swaps[i][1]]);
}
}
}
answer(ans);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |