Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <cmath>#include <cstdio>#include <cstdlib>#include <iostream>#include <algorithm>#include <string>#include <cstring>#include <vector>#include <map>using namespace std;int n,k,o,i,ANS[1005],p[1005],ANSS[1005];long long ans;double MAX;const int MOD=1000000007;bool prime(int x){for (int i=2; i<=int(sqrt(x)+0.0000000001); i++)if (x%i==0) return false;return true;}void dfs(int x,int y,double z){if (y==k+1){for (int i=1; i<y; i++) ANSS[i]=ANS[i];MAX=max(MAX,z);}if (z+log(x)*(k-y+1)<MAX) return;if (y==k+1 || x==p[o]-1) return;dfs(x-1,y,z);bool FLAG=true;