#include<bits/stdc++.h>
#include"Alice.h"
using namespace std;
long long fr[22],per[22];
bool ck[22];
vector< pair<int,int> > Alice()
{
long long x=setN(4830)-1;
vector< pair<int,int> > edges;
fr[0]=1;
for(int i=1;i<=20;i++) fr[i]=fr[i-1]*i,ck[i]=false;
for(int i=1;i<=20;i++) while(true)
{
per[i]++;
if(x>=fr[20-i]) x-=fr[20-i];
else break;
}
for(int j=0;j<230;j++) for(int i=1;i<=20;i++) edges.push_back({j*21+per[i],j*21+i+1});
for(int j=0;j<229;j++) edges.push_back({j*21+1,(j+1)*21+1});
return edges;
}
#include<bits/stdc++.h>
#include"Bob.h"
using namespace std;
long long fr[22],per[22];
long long Bob(vector< pair<int,int> > V)
{
for(auto v:V)
{
int l=(v.first-1)/21,r=(v.second-1)/21;
if(l==r) per[(v.second-1)%21]=v.first%21;
}
fr[0]=1;
for(int i=1;i<=20;i++) fr[i]=fr[i-1]*i;
long long x=1;
for(int i=1;i<=20;i++) if(per[i]==0) assert(false);
for(int i=1;i<=20;i++) x+=(per[i]-1)*fr[20-i];
return x;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |