답안 #596533

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
596533 2022-07-14T19:58:44 Z ThegeekKnight16 Brperm (RMI20_brperm) C++14
0 / 100
172 ms 5692 KB
#include <bits/stdc++.h>
#include <brperm.h>
using namespace std;
const int MAXN = 5e5 + 10;
int Roupas[MAXN], pos[MAXN];
 
int findK(int num)
{
    for (int k = 20; k >= 0; k--) if (num & (1 << k)) return k;
  	return 0;
}
 
int inv(int num, int K)
{
    int resp = 0;
    for (int k = K; k >= 0; k--) resp += (num & (1 << k)) ? (1 << (K - k)) : 0;
    return resp;
}
 
int query(int X, int K)
{
    int Y = X + (1 << K) - 1;
    
    int maxK = findK(Y);
    
    //for (int i = X; i <= Y; i++) pos[i] = inv(i - X, maxK);
    
    for (int i = X; i <= Y; i++) if (Roupas[i] != Roupas[pos[i]]) {return 0;}
    return 1;
}
 
void init(int N, const char s[])
{
    for (int i = 0; i < N; i++) Roupas[i] = s[i];
    int K = findK(N-1);
    for (int i = 0; i < N; i++) pos[i] = inv(i, K);
}
 
/*int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    init(8, "axxyxxyb");
    cout << query(0, 2);
}*/

Compilation message

brperm.cpp: In function 'int query(int, int)':
brperm.cpp:24:9: warning: unused variable 'maxK' [-Wunused-variable]
   24 |     int maxK = findK(Y);
      |         ^~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 172 ms 5692 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -