답안 #892632

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
892632 2023-12-25T15:40:50 Z vjudge1 Super Dango Maker (JOI22_dango3) C++17
100 / 100
583 ms 840 KB
#include "dango3.h"
#include <bits/stdc++.h>
using namespace std;
/*                                                    __                    __                        __                        */
/*        ======     _      /| /|  __   _            /   |  |   /|  |   @  |    |  |  | /   /| |\  | /   |  |  @ | /            */   
/*          ||  |_| |_     / |/ | |  | |_  |-        |   |--|  /-|  |   |  \ \  |==|  |-   /=| | \ | |   |--|  | |-             */
/*          ||  | | |_    /     | |__|  _| |_        \__ |  | /  |  |__ |  __|  |  |  | \ /  | |  \| \__ |  |  | | \            */ 
/*                                                                                                                              */         


void Solve(int n, int m) {
    queue < pair < vector <int> ,int >  > q;
    vector <int> in;
    vector <vector <int> > ans;
    for(int i=1;i<=n*m;i++){
        in.push_back(i);
    }
    q.push({in,m});
    while(!q.empty()){
        vector <int> v=q.front().first;
        int k=q.front().second;
        q.pop();
        if(k<=1){
            ans.push_back(v);
        }
        else{
            vector <int> used(v.size());
            for(int i=0;i<v.size();i++){
                used[i]=1;
                vector <int> x;
                for(int j=0;j<v.size();j++){
                    if(used[j]==0)x.push_back(v[j]);
                }
                if(Query(x)<k/2)used[i]=0;
            }
            vector <int> g1,g2;
            for(int i=0;i<v.size();i++){
                if(used[i]==0)g1.push_back(v[i]);
                else g2.push_back(v[i]);
            }
            q.push({g1,k/2});
            if(k%2==1)q.push({g2,k/2+1});
            else q.push({g2,k/2});
            
        }
        
    }
    for(auto x : ans){
        Answer(x);
    }
    return;
}

Compilation message

dango3.cpp: In function 'void Solve(int, int)':
dango3.cpp:28:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   28 |             for(int i=0;i<v.size();i++){
      |                         ~^~~~~~~~~
dango3.cpp:31:30: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   31 |                 for(int j=0;j<v.size();j++){
      |                             ~^~~~~~~~~
dango3.cpp:37:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |             for(int i=0;i<v.size();i++){
      |                         ~^~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 1 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 348 KB Output is correct
2 Correct 5 ms 348 KB Output is correct
3 Correct 8 ms 344 KB Output is correct
4 Correct 7 ms 504 KB Output is correct
5 Correct 5 ms 348 KB Output is correct
6 Correct 6 ms 516 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 115 ms 616 KB Output is correct
2 Correct 113 ms 600 KB Output is correct
3 Correct 139 ms 616 KB Output is correct
4 Correct 130 ms 600 KB Output is correct
5 Correct 111 ms 600 KB Output is correct
6 Correct 115 ms 616 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 468 ms 736 KB Output is correct
2 Correct 441 ms 748 KB Output is correct
3 Correct 521 ms 740 KB Output is correct
4 Correct 583 ms 756 KB Output is correct
5 Correct 429 ms 840 KB Output is correct
6 Correct 432 ms 756 KB Output is correct