제출 #652403

#제출 시각아이디문제언어결과실행 시간메모리
652403BlagojPrisoner Challenge (IOI22_prison)C++17
0 / 100
12 ms1152 KiB
#include "prison.h"
#include <bits/stdc++.h>

using namespace std;

std::vector<std::vector<int>> devise_strategy(int N) {
  vector<vector<int>> v(40);
  for (int i = 0; i <= 39; i++)
  {
    if (i == 0)
    {
      v[i].push_back(0);
      for (int j = 1; j <= N; j++)
      {
        int k = j;
        while (k > 9)
        {
          k /= 10;
        }
        v[i].push_back(10 + k);
      }
      continue;
    }
    if (i / 10 == 0)
    {
      v[i].push_back(0);
      for (int j = 1; j <= N; j++)
      {
        int k = j, l = 999;
        if (i == 1)
        {
          l = 99;
        }
        while (k > l)
        {
          k /= 10;
        }
        string a = to_string(j);
        if (a.size() < i + 1)
        {
          v[i].push_back(-1);
          continue;
        }
        v[i].push_back(min((i + 1) * 10 + k % 10, 39));
      }
      continue;
    }
    v[i].push_back(1);
    for (int j = 1; j <= N; j++)
    {
      int k = j, l = 999;
      if (i / 10 == 1)
      {
        l = 9;
      }
      if (i / 10 == 2)
      {
        l = 99;
      }
      while (k > l)
      {
        k /= 10;
      }
      k %= 10;
      string b = to_string(j);
      if (b.size() < i / 10)
      {
        v[i].push_back(-2);
        continue;
      }
      if (k > i % 10)
      {
        v[i].push_back(-1);
        continue;
      }
      if (k < i % 10)
      {
        v[i].push_back(-2);
        continue;
      }
      v[i].push_back(i / 10);
    }
  }
  return v;
}

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

prison.cpp: In function 'std::vector<std::vector<int> > devise_strategy(int)':
prison.cpp:39:22: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   39 |         if (a.size() < i + 1)
      |             ~~~~~~~~~^~~~~~~
prison.cpp:66:20: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   66 |       if (b.size() < i / 10)
      |           ~~~~~~~~~^~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...