답안 #992700

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
992700 2024-06-05T04:10:35 Z yellowtoad Super Dango Maker (JOI22_dango3) C++17
2 / 100
11 ms 684 KB
#include "dango3.h"
#include <iostream>
#include <vector>
using namespace std;

namespace {

vector<int> cur, tmp, ans, v, q;
bool b[10010];

}  // namespace

void Solve(int n, int m) {
  for (int i = 1; i <= n*m; i++) cur.push_back(i);
  for (int _ = 1; _ <= m; _++) {
    v.clear();
    for (int i = 0; i < cur.size(); i += m) {
      while (1) {
        q = v;
        /*for (int j = 0; j < v.size(); j++) cout << v[j] << " ";
        cout << " v" << endl;*/
        for (int j = i+m; j < cur.size(); j++) if (!b[cur[j]]) q.push_back(cur[j]);
        /*for (int j = 0; j < q.size(); j++) cout << q[j] << " ";
        cout << " gay" << endl;*/
        if (Query(q)) break;
        tmp.clear();
        for (int j = i; j < i+m; j++) if (!b[cur[j]]) tmp.push_back(cur[j]);
        int l = 0, r = (int)tmp.size()-1;
        while (l < r) {
          int mid = (l+r)/2;
          q = v;
          for (int j = mid+1; j < tmp.size(); j++) q.push_back(tmp[j]);
          for (int j = i+m; j < cur.size(); j++) if (!b[cur[j]]) q.push_back(cur[j]);
          if (Query(q)) l = mid+1;
          else r = mid-1;
        }
        b[tmp[l]] = 1;
        v.push_back(tmp[l]);
      }
    }
    tmp.clear();
    ans.clear();
    for (int i = 0; i < cur.size(); i++) {
      if (!b[cur[i]]) tmp.push_back(cur[i]);
      else ans.push_back(cur[i]);
    }
    Answer(ans);
    cur = tmp;
  }
}

Compilation message

dango3.cpp: In function 'void Solve(int, int)':
dango3.cpp:17:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   17 |     for (int i = 0; i < cur.size(); i += m) {
      |                     ~~^~~~~~~~~~~~
dango3.cpp:22:29: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   22 |         for (int j = i+m; j < cur.size(); j++) if (!b[cur[j]]) q.push_back(cur[j]);
      |                           ~~^~~~~~~~~~~~
dango3.cpp:32:33: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |           for (int j = mid+1; j < tmp.size(); j++) q.push_back(tmp[j]);
      |                               ~~^~~~~~~~~~~~
dango3.cpp:33:31: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   33 |           for (int j = i+m; j < cur.size(); j++) if (!b[cur[j]]) q.push_back(cur[j]);
      |                             ~~^~~~~~~~~~~~
dango3.cpp:43:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   43 |     for (int i = 0; i < cur.size(); i++) {
      |                     ~~^~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 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 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 348 KB Wrong Answer [4]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 604 KB Wrong Answer [4]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 11 ms 684 KB Wrong Answer [4]
2 Halted 0 ms 0 KB -