# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
29659 | PrOAhMeT | 질문 (CEOI14_question_grader) | C++14 | 7000 ms | 25460 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#define mp make_pair
#define pb push_back
#define pii pair<int,int>
#define LL long long
#define st first
#define nd second
#define endl '\n'
using namespace std;
int encode (int n, int x, int y) {
//cout<<"hi "<<n<<" "<<x<<" "<<y<<endl;
srand(1203);
vector<int> v;
for(int i=1;i<=n;++i)
v.pb(i);
random_shuffle(v.begin(),v.end());
int a[n+1];
for(int i=0;i<n;++i)
a[v[i]]=i;
int c=1;
for(int i=0;;++i) {
if((a[x]&(1<<i))!=(a[y]&(1<<i))) {
return c+((a[x]&(1<<i))?1:0);
}
c+=2;
}
}
#include <bits/stdc++.h>
#define mp make_pair
#define pb push_back
#define pii pair<int,int>
#define LL long long
#define st first
#define nd second
#define endl '\n'
using namespace std;
int decode (int n, int q, int h) {
//cout<<"out "<<n<<" "<<q<<" "<<h<<endl;
srand(1203);
vector<int> v;
for(int i=1;i<=n;++i)
v.pb(i);
random_shuffle(v.begin(),v.end());
int a[n+1];
for(int i=0;i<n;++i)
a[v[i]]=i;
q=a[q];
int xx=(h-1)/2,yy=!(h&1);
int k=(q&(1<<xx));
if(k) k=1;
if(k==yy) return 1;
else return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |