#include <iostream>
#include <vector>
#include <string>
#include <list>
#include <set>
#include <map>
#include <random>
#include "messy.h"
using namespace std;
typedef int ll;
typedef vector<ll> vll;
typedef string s;
typedef list<ll> lll;
typedef pair<ll,ll> pll;
typedef set<ll> sll;
/*struct cmp {
bool operator() (pair<ll, lll::iterator> a, pair<ll, lll::iterator> b) const {return a.first < b.first;}
};
typedef set<pair<ll, lll::iterator>, cmp> spll;*/
typedef set<pll> spll;
#define rep(a,b,c) for(ll a = b; a < c; a++)
#define itr_rep(a,b,_type) for(_type::iterator a = b.begin(); a != b.end(); a++)
#define pb(a) push_back(a)
#define mp(a,b) make_pair(a,b)
std::vector<int> restore_permutation(int n, int w, int r) {
vll perm;
perm.clear();
s inp;
rep(i,0,n) {
inp.pb('0');
}
rep(i,0,n) {
inp[i] = '1';
add_element(inp);
}
compile_set();
sll left;
left.clear();
rep(i,0,n) {
left.insert(i);
}
spll shuffle;
random_device rd;
s target;
rep(i,0,n) {target.pb('0');}
rep(i,0,n) {
shuffle.clear();
mt19937 generator(rd()+i);
itr_rep(itr,left,sll) {
shuffle.insert(mp(generator(),*itr));
}
rep(i,0,left.size()) {
ll curr = (*shuffle.begin()).second;
//cout << "curr: " << curr << endl;
target[curr] = '1';
if (check_element(target)) {
perm.pb(curr);
left.erase(curr);
break;
}
target[curr] = '0';
shuffle.erase(shuffle.begin());
}
shuffle.clear();
}
/*rep(i,0,n) {cout << perm[i] << " ";}
cout << endl;*/
// need to invert perm bc i am stupid;
vll actual;
actual.resize(n,0);
rep(i,0,n) {
actual[perm[i]] = i;
}
return actual;
}
Compilation message
messy.cpp: In function 'std::vector<int> restore_permutation(int, int, int)':
messy.cpp:27:36: warning: comparison of integer expressions of different signedness: 'll' {aka 'int'} and 'std::set<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
27 | #define rep(a,b,c) for(ll a = b; a < c; a++)
......
62 | rep(i,0,left.size()) {
| ~~~~~~~~~~~~~~~
messy.cpp:62:9: note: in expansion of macro 'rep'
62 | rep(i,0,left.size()) {
| ^~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
212 KB |
n = 8 |
2 |
Correct |
0 ms |
212 KB |
n = 8 |
3 |
Correct |
0 ms |
212 KB |
n = 8 |
4 |
Correct |
0 ms |
212 KB |
n = 8 |
5 |
Correct |
0 ms |
212 KB |
n = 8 |
6 |
Correct |
1 ms |
212 KB |
n = 8 |
7 |
Correct |
1 ms |
212 KB |
n = 8 |
8 |
Correct |
1 ms |
212 KB |
n = 8 |
9 |
Correct |
1 ms |
212 KB |
n = 8 |
10 |
Correct |
1 ms |
212 KB |
n = 8 |
11 |
Correct |
0 ms |
212 KB |
n = 8 |
12 |
Correct |
1 ms |
212 KB |
n = 8 |
13 |
Correct |
1 ms |
212 KB |
n = 8 |
14 |
Correct |
0 ms |
212 KB |
n = 8 |
15 |
Correct |
0 ms |
212 KB |
n = 8 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
212 KB |
n = 32 |
2 |
Correct |
1 ms |
212 KB |
n = 32 |
3 |
Correct |
1 ms |
212 KB |
n = 32 |
4 |
Correct |
1 ms |
212 KB |
n = 32 |
5 |
Correct |
1 ms |
212 KB |
n = 32 |
6 |
Correct |
1 ms |
212 KB |
n = 32 |
7 |
Correct |
1 ms |
212 KB |
n = 32 |
8 |
Correct |
1 ms |
212 KB |
n = 32 |
9 |
Correct |
1 ms |
212 KB |
n = 32 |
10 |
Correct |
1 ms |
212 KB |
n = 32 |
11 |
Correct |
1 ms |
216 KB |
n = 32 |
12 |
Correct |
1 ms |
212 KB |
n = 32 |
13 |
Correct |
1 ms |
212 KB |
n = 32 |
14 |
Correct |
1 ms |
212 KB |
n = 32 |
15 |
Correct |
1 ms |
212 KB |
n = 32 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
212 KB |
n = 32 |
2 |
Incorrect |
1 ms |
212 KB |
grader returned WA |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
340 KB |
grader returned WA |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
340 KB |
grader returned WA |
2 |
Halted |
0 ms |
0 KB |
- |