답안 #1066305

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1066305 2024-08-19T17:40:54 Z PCTprobability The Collection Game (BOI21_swaps) C++17
100 / 100
5 ms 840 KB
#include "swaps.h"
#include<bits/stdc++.h>
using namespace std;
int N;
vector<int> q;
//N 以上は小さい方が高い
void sch(int i,int j){
  if(i<N&&j<N){
    q.push_back(-1);
    schedule(i+1,j+1);
  }
  else if(i<N){
    q.push_back(1);
  }
  else if(j<N){
    q.push_back(0);
  }
  else if(i<j){
    q.push_back(1);
  }
  else{
    q.push_back(0);
  }
}
vector<int> my_visit(){
  vector<int> r=visit();
  vector<int> ret;
  int i=0;
  for(auto e:q){
    if(e==-1){
      ret.push_back(r[i]);
      i++;
    }
    else{
      ret.push_back(e);
    }
  }
  q.clear();
  return ret;
}
void solve(int n, int v) {
  N=n;
  //bitonic sort ですか?
  int m=1;
  int k=0;
  while(m<n){
    m*=2;
    k++;
  }
  vector<int> a(m);
  iota(a.begin(),a.end(),0);
  for(int i=0;i<k;i++){
    //前提条件:長さ 2^i のブロックは全てソート済み(奇数ブロック目は逆順ソート)
    for(int j=i;j>=0;j--){
      vector<pair<int,int>> s;
      for(int k=0;k<m;k+=(1<<(j+1))){
        for(int l=0;l<(1<<j);l++){
          sch(a[k+l],a[k+l+(1<<j)]);
        }
      }
      vector<int> r=my_visit();
      int idx=0;
      int rev=1;
      for(int k=0;k<m;k+=(1<<(j+1))){
        if(k%(1<<(i+1))==0) rev^=1;
        for(int l=0;l<(1<<j);l++){
          if((r[idx]^rev^1)){
            swap(a[k+l],a[k+l+(1<<j)]);
          }
          idx++;
        }
      }
    }
  }
  vector<int> ans;
  for(int i=0;i<n;i++) ans.push_back(a[i]+1);
  answer(ans);
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Correct
2 Correct 1 ms 344 KB Correct
3 Correct 1 ms 344 KB Correct
4 Correct 3 ms 440 KB Correct
5 Correct 3 ms 444 KB Correct
6 Correct 3 ms 344 KB Correct
7 Correct 4 ms 440 KB Correct
8 Correct 5 ms 592 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Correct
2 Correct 1 ms 344 KB Correct
3 Correct 1 ms 344 KB Correct
4 Correct 3 ms 444 KB Correct
5 Correct 2 ms 344 KB Correct
6 Correct 4 ms 448 KB Correct
7 Correct 5 ms 344 KB Correct
8 Correct 3 ms 388 KB Correct
9 Correct 2 ms 344 KB Correct
10 Correct 3 ms 344 KB Correct
11 Correct 3 ms 580 KB Correct
12 Correct 3 ms 344 KB Correct
13 Correct 3 ms 444 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Correct
2 Correct 1 ms 344 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Correct
2 Correct 1 ms 344 KB Correct
3 Correct 1 ms 344 KB Correct
4 Correct 1 ms 344 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Correct
2 Correct 1 ms 344 KB Correct
3 Correct 2 ms 344 KB Correct
4 Correct 3 ms 440 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Correct
2 Correct 1 ms 344 KB Correct
3 Correct 2 ms 344 KB Correct
4 Correct 3 ms 440 KB Correct
5 Correct 1 ms 344 KB Correct
6 Correct 1 ms 436 KB Correct
7 Correct 2 ms 344 KB Correct
8 Correct 3 ms 344 KB Correct
9 Correct 3 ms 440 KB Correct
10 Correct 3 ms 344 KB Correct
11 Correct 3 ms 344 KB Correct
12 Correct 3 ms 448 KB Correct
13 Correct 1 ms 344 KB Correct
14 Correct 1 ms 344 KB Correct
15 Correct 2 ms 344 KB Correct
16 Correct 3 ms 440 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Correct
2 Correct 1 ms 344 KB Correct
3 Correct 3 ms 344 KB Correct
4 Correct 4 ms 448 KB Correct
5 Correct 3 ms 444 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Correct
2 Correct 1 ms 344 KB Correct
3 Correct 3 ms 344 KB Correct
4 Correct 4 ms 448 KB Correct
5 Correct 3 ms 444 KB Correct
6 Correct 0 ms 344 KB Correct
7 Correct 1 ms 344 KB Correct
8 Correct 1 ms 344 KB Correct
9 Correct 5 ms 344 KB Correct
10 Correct 4 ms 444 KB Correct
11 Correct 4 ms 444 KB Correct
12 Correct 3 ms 444 KB Correct
13 Correct 3 ms 444 KB Correct
14 Correct 3 ms 444 KB Correct
15 Correct 3 ms 344 KB Correct
16 Correct 2 ms 440 KB Correct
17 Correct 3 ms 568 KB Correct
18 Correct 3 ms 596 KB Correct
19 Correct 0 ms 344 KB Correct
20 Correct 1 ms 344 KB Correct
21 Correct 2 ms 344 KB Correct
22 Correct 4 ms 444 KB Correct
23 Correct 3 ms 344 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Correct
2 Correct 2 ms 440 KB Correct
3 Correct 1 ms 344 KB Correct
4 Correct 5 ms 344 KB Correct
5 Correct 4 ms 440 KB Correct
6 Correct 4 ms 400 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Correct
2 Correct 2 ms 440 KB Correct
3 Correct 1 ms 344 KB Correct
4 Correct 5 ms 344 KB Correct
5 Correct 4 ms 440 KB Correct
6 Correct 4 ms 400 KB Correct
7 Correct 0 ms 344 KB Correct
8 Correct 1 ms 344 KB Correct
9 Correct 1 ms 344 KB Correct
10 Correct 4 ms 824 KB Correct
11 Correct 4 ms 692 KB Correct
12 Correct 3 ms 344 KB Correct
13 Correct 4 ms 344 KB Correct
14 Correct 3 ms 344 KB Correct
15 Correct 2 ms 440 KB Correct
16 Correct 3 ms 444 KB Correct
17 Correct 3 ms 344 KB Correct
18 Correct 2 ms 344 KB Correct
19 Correct 4 ms 344 KB Correct
20 Correct 1 ms 344 KB Correct
21 Correct 1 ms 440 KB Correct
22 Correct 2 ms 344 KB Correct
23 Correct 5 ms 344 KB Correct
24 Correct 3 ms 344 KB Correct
25 Correct 4 ms 424 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Correct
2 Correct 1 ms 344 KB Correct
3 Correct 1 ms 344 KB Correct
4 Correct 2 ms 440 KB Correct
5 Correct 3 ms 344 KB Correct
6 Correct 3 ms 596 KB Correct
7 Correct 5 ms 416 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Correct
2 Correct 1 ms 344 KB Correct
3 Correct 1 ms 344 KB Correct
4 Correct 2 ms 440 KB Correct
5 Correct 3 ms 344 KB Correct
6 Correct 3 ms 596 KB Correct
7 Correct 5 ms 416 KB Correct
8 Correct 1 ms 344 KB Correct
9 Correct 0 ms 344 KB Correct
10 Correct 1 ms 344 KB Correct
11 Correct 2 ms 344 KB Correct
12 Correct 3 ms 448 KB Correct
13 Correct 5 ms 344 KB Correct
14 Correct 2 ms 344 KB Correct
15 Correct 3 ms 448 KB Correct
16 Correct 3 ms 452 KB Correct
17 Correct 3 ms 440 KB Correct
18 Correct 2 ms 344 KB Correct
19 Correct 3 ms 444 KB Correct
20 Correct 4 ms 344 KB Correct
21 Correct 3 ms 344 KB Correct
22 Correct 0 ms 344 KB Correct
23 Correct 1 ms 436 KB Correct
24 Correct 1 ms 424 KB Correct
25 Correct 4 ms 840 KB Correct
26 Correct 3 ms 444 KB Correct
27 Correct 3 ms 444 KB Correct
28 Correct 4 ms 420 KB Correct