제출 #494374

#제출 시각아이디문제언어결과실행 시간메모리
494374jasen_penchevBrperm (RMI20_brperm)C++14
50 / 100
3074 ms11120 KiB
#include "brperm.h" #include <iostream> #include <string> #define endl '\n' using namespace std; const int LOG = 20; string str = ""; int mem[LOG + 5][(1ll << LOG) + 5]; void init(int n, const char s[]) { for (int i = 0; i < n; ++ i) { str += s[i]; } for (int k = 0; k < 20; ++ k) { for (int i = 0; i < (1ll << k); ++ i) { int idx = 0; for (int j = 0; j < k; ++ j) { if ((i & (1ll << j))) idx += (1ll << (k - j - 1)); } mem[k][i] = idx; } } return; } int query(int pos, int k) { if (pos + (1ll << k) > str.size()) return 0; for (int i = 0; i < (1ll << k); ++ i) { int idx = mem[k][i]; if (str[pos + i] != str[pos + idx]) return 0; } return 1; }

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

brperm.cpp: In function 'int query(int, int)':
brperm.cpp:39:26: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   39 |     if (pos + (1ll << k) > str.size()) return 0;
      |         ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...