이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
/*DavitMarg*/
#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <string>
#include <cstring>
#include <map>
#include <set>
#include <queue>
#include <iomanip>
#include <bitset>
#include <stack>
#include <cassert>
#include <iterator>
#include <bitset>
#include <ctype.h>
#include <fstream>
#define mod 1000000007ll
#define LL long long
#define LD long double
#define MP make_pair
#define PB push_back
#define all(v) v.begin(),v.end()
#ifndef death
#include "messy.h"
#endif
using namespace std;
#ifdef death
map<string, bool> USED;
vector<int> P;
void add_element(string s)
{
string t = s;
for (int i = 0; i < P.size(); i++)
t[i] = s[P[i]];
USED[t] = 1;
}
void compile_set()
{
}
bool check_element(string s)
{
return USED[s];
}
#endif
int n, w, r;
vector<int> p;
bool used[200];
string s;
int Main()
{
for (int i = 0; i < n; i++)
{
s += '0';
p.PB(0);
}
for (int i = 0; i < n; i++)
{
s[i] = '1';
add_element(s);
}
compile_set();
for (int i = 0; i < n; i++)
s[i] = '0';
vector<int> rnd;
for (int i = 0; i < n; i++)
rnd.PB(i);
for (int i = 0; i < n; i++)
{
random_shuffle(all(rnd));
random_shuffle(all(rnd));
random_shuffle(all(rnd));
for (int J = 0; J < n; J++)
{
int j = rnd[J];
if (used[j])
continue;
s[j]++;
if (J == n - 1 || check_element(s))
{
p[j] = i;
used[j] = 1;
break;
}
s[j]--;
}
}
return 0;
}
vector<int> restore_permutation(int N, int W, int R)
{
srand(54684865);
w = W;
r = R;
n = N;
Main();
return p;
}
#ifdef death
int main()
{
int N, R, W;
cin >> N >> W >> R;
for (int i = 0; i < N; i++)
{
P.PB(0);
cin >> P.back();
}
P = restore_permutation(N, W, R);
for (int i = 0; i < N; i++)
cout << P[i] << " ";
cout << endl;
return 0;
}
#endif
/*
8 0 0
1 7 3 2 5 0 4 6
*/
# | 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... |