제출 #1227135

#제출 시각아이디문제언어결과실행 시간메모리
1227135Marco_EscandonUnscrambling a Messy Bug (IOI16_messy)C++20
100 / 100
3 ms1096 KiB
#include "messy.h"
#include<bits/stdc++.h>
using namespace std;











#include<bits/stdc++.h>
using namespace std;
typedef int ll;
std::vector<int> restore_permutation(int n, int w, int r) {
    for(int i=0; i<log2(n); i++)
    {
        for(int j=0; j<n; j+=n/(1<<i))
        {
            string s;s.assign(n,'1');
            for(int k=0; k<n/(1<<i); k++)
            {
                s[j+k]='0';
            }
            for(int k=0; k<n/(2<<i); k++)
            {
                s[j+k]='1';
                add_element(s);
                //cerr<<s<<"\n";
                s[j+k]='0';
            }
        }
    }
    //cerr<<"\n\n";
    compile_set();
    vector<set<ll>> ans(n);
    for(int i=0; i<n; i++)
        for(int j=0; j<n; j++)
            ans[i].insert(j);
    for(int i=0; i<log2(n); i++)
    {
        for(int j=0; j<n; j+=n/(1<<i))
        {
            string s;s.assign(n,'1');
            for(auto k:ans[j])
            {
                s[k]='0';
            }
            set<ll> s2;
            for(int k=0;k<n;k++) s2.insert(k);
            //cerr<<s<<"---\n";
            for(auto k:ans[j])
            {
                s[k]='1';
                //cerr<<s<<"\n";
                if(check_element(s)) s2.erase(k);
                s[k]='0';
            }
            for(auto k:s2)
            {
                ans[j].erase(k);
            }
            for(int k=0; k<n/(2<<i); k++)
            {
                ans[j+k]=ans[j];
            }
            for(auto k:ans[j])
            {
                ans[j+n/(2<<i)].erase(k);
            }
            for(int k=n/(2<<i); k<n/(1<<i); k++)
            {
                ans[j+k]=ans[j+n/(2<<i)];
            }
        }
    }
    vector<ll> ans2(n);
    for(int i=0; i<n; i++)
    {
        ans2[*ans[i].begin()]=i;
    }
    
    return ans2;
}

컴파일 시 표준 에러 (stderr) 메시지

messy.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
messy_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...