제출 #1335781

#제출 시각아이디문제언어결과실행 시간메모리
1335781LuvidiShuffle (NOI19_shuffle)C++20
12 / 100
2 ms344 KiB
#include "shuffle.h"
#include <bits/stdc++.h>
using namespace std;

#define pb push_back

vector<int> solve(int n, int b, int k, int q, int st) {
    int a[n+1];
    {   
        vector<vector<int>> v1(b);
        for(int i=1;i<=n;i++){
            v1[(i-1)/k].pb(i);
        }
        auto v2=shuffle(v1);
        for(int i=0;i<b;i++){
            for(int j=0;j<k;j++){
                a[v2[i][j]]=i;
            }
        }
    }
    int col[n+1];
    memset(col,0,sizeof(col));
    for(int x=0;x<10;x++){
        vector<vector<int>> v1(b);
        for(int i=0;i<b;i++){
            for(int j=0;j<k;j++){
                if(j>>x&1)v1[i].pb(i*k+j+1);
                else v1[(i+1)%b].pb(i*k+j+1);
            }
        }
        auto v2=shuffle(v1);
        for(int i=0;i<b;i++){
            for(int j=0;j<k;j++){
                if(a[v2[i][j]]==i){
                    col[v2[i][j]]^=1<<x;
                }
            }
        }
    }
    vector<int> ans(n);
    for(int i=1;i<=n;i++){
        ans[a[i]*k+col[i]]=i;
    }
    return ans;
}

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

grader.cpp: In function 'std::vector<std::vector<int> > shuffle(std::vector<std::vector<int> >)':
grader.cpp:51:51: warning: 'void std::random_shuffle(_RAIter, _RAIter, _Generator&&) [with _RAIter = __gnu_cxx::__normal_iterator<int*, vector<int> >; _Generator = int (&)(int)]' is deprecated: use 'std::shuffle' instead [-Wdeprecated-declarations]
   51 |         for (int i = 0; i < B; i++) random_shuffle(packed_cards[i].begin(), packed_cards[i].end(), myrandom);
      |                                     ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/13/algorithm:61,
                 from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:51,
                 from grader.cpp:3:
/usr/include/c++/13/bits/stl_algo.h:4620:5: note: declared here
 4620 |     random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last,
      |     ^~~~~~~~~~~~~~
grader.cpp:52:36: warning: 'void std::random_shuffle(_RAIter, _RAIter, _Generator&&) [with _RAIter = __gnu_cxx::__normal_iterator<vector<int>*, vector<vector<int> > >; _Generator = int (&)(int)]' is deprecated: use 'std::shuffle' instead [-Wdeprecated-declarations]
   52 |         if (ST != 3) random_shuffle(packed_cards.begin(), packed_cards.end(), myrandom);
      |                      ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/stl_algo.h:4620:5: note: declared here
 4620 |     random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last,
      |     ^~~~~~~~~~~~~~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...