Submission #258425

#TimeUsernameProblemLanguageResultExecution timeMemory
258425fivefourthreeoneUnscrambling a Messy Bug (IOI16_messy)C++17
Compilation error
0 ms0 KiB
/*#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")*/
#include "messy.h"
#include <bits/stdc++.h>
#define owo(i,a, b) for(int i=(a);i<(b); ++i)
#define uwu(i,a, b) for(int i=(a)-1; i>=(b); --i)
#define senpai push_back
#define ttgl pair<int, int>
#define ayaya cout<<"ayaya~"<<endl
using namespace std;
/*#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
gpu_hash_table<int, int> mp;
#define ordered_set tree<ttgl, null_type,less<ttgl>, rb_tree_tag,tree_order_statistics_node_update>
 */
using ll = long long;
using ld = long double;
const ll MOD = 1000000007;
const ll root = 62;
int gcd(int a,int b){return b?gcd(b,a%b):a;}
ll binpow(ll a,ll b){ll res=1;while(b){if(b&1)res=(res*a)%MOD;a=(a*a)%MOD;b>>=1;}return res;}
ll modInv(ll a){return binpow(a, MOD-2);}
const double PI = acos(-1);
const double eps = -1e6;
const int INF = 0x3f3f3f3f;
const int NINF = 0xc0c0c0c0;
const ll INFLL = 0x3f3f3f3f3f3f3f3f;
const ll NINFLL = 0xc0c0c0c0c0c0c0c0;
int ans[128];
int n;
void place(int l, int r) {
    string s;
    owo(i, 0, n) {
        if(i>=l&&i<=r) {
            s+='1';
        }else {
            s+='0';
        }
    }
    int mid = (l+r)/2;
    owo(i, l, mid+1) {
        s[i] = '0';
        add_element(s);
        s[i] = '1';
    }
    place(l, mid);
    place(mid+1, r);
}
void solve(int l, int r) {
    string s;
    owo(i, 0, n) {
        if(i>=l&&i<=r) {
            s+='1';
        }else {
            s+='0';
        }
    }
    int mid = (l+r)/2;
    owo(i, l, mid+1) {
        s[i] = '0';
        if(!check_element(s)) {
            int k = ans[r-i+l];
            ans[r-i+l] = ans[i];
            ans[i] = k;
        }
        s[i] = '1';
    }
}
int* restore_permutation(int N, int w, int r) {
    n = N;
    owo(i, 0, n) {
        ans[i] = i;
    }
    place(0, n-1);
    compile_set();
    solve(0, n-1);
    int result[n];
    owo(i, 0, n) {
        result[i] = ans[i];
    }
    return result;
}
/*int main() {
    //freopen("file.in", "r", stdin);
    //freopen("file.out", "w", stdout);
    mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
    cin.tie(0)->sync_with_stdio(0);
    cin>>n;
    return 0;
}*/

Compilation message (stderr)

messy.cpp: In function 'int* restore_permutation(int, int, int)':
messy.cpp:72:6: error: ambiguating new declaration of 'int* restore_permutation(int, int, int)'
 int* restore_permutation(int N, int w, int r) {
      ^~~~~~~~~~~~~~~~~~~
In file included from messy.cpp:4:0:
messy.h:10:18: note: old declaration 'std::vector<int> restore_permutation(int, int, int)'
 std::vector<int> restore_permutation(int n, int w, int r);
                  ^~~~~~~~~~~~~~~~~~~
messy.cpp:80:9: warning: address of local variable 'result' returned [-Wreturn-local-addr]
     int result[n];
         ^~~~~~