제출 #547568

#제출 시각아이디문제언어결과실행 시간메모리
547568SuffixAutomataSuper Dango Maker (JOI22_dango3)C++17
100 / 100
2372 ms1480 KiB
#include "dango3.h"

#include <bits/stdc++.h>
using namespace std;

#define all(a) a.begin(), a.end()
#define fi first
#define se second
#define pb push_back
#define mp make_pair

using ll = long long;
using pii = pair<int, int>;
//#define int ll
const int MOD = 1000000007;

namespace {
int n, m;
}

void dfs(vector<int> cur) {
  if (cur.size() == n)
    return Answer(cur);
  int targ = cur.size() / n / 2;
  set<int> cur2(all(cur)), cur3;
  auto it = cur2.begin();
  while (cur2.size() != targ * n) {
    int v = *it;
    it = cur2.erase(it);
    if (Query(vector<int>(all(cur2))) >= targ)
      cur3.insert(v);
    else
      cur2.insert(v);
  }
  dfs(vector<int>(all(cur2)));
  dfs(vector<int>(all(cur3)));
}

void Solve(int N, int M) {
  n = N, m = M;
  vector<int> remain;
  for (int i = 0; i < M; i++)
    for (int j = 0; j < N; j++)
      remain.push_back(N * i + j + 1);
  dfs(remain);
}

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

dango3.cpp: In function 'void dfs(std::vector<int>)':
dango3.cpp:22:18: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   22 |   if (cur.size() == n)
      |       ~~~~~~~~~~~^~~~
dango3.cpp:27:22: warning: comparison of integer expressions of different signedness: 'std::set<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   27 |   while (cur2.size() != targ * n) {
      |          ~~~~~~~~~~~~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...