# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1081550 | djs100201 | 마술쇼 (APIO24_show) | C++17 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
#define all(v) v.begin(),v.end()
using namespace std;
using ll = long long;
using P = pair<ll, ll>;
using PP = pair<ll, P>;
const ll n_ =1e7+10, inf = (ll)2e9 * (ll)1e9 + 7, mod = 998244353;
ll n, m, tc = 1, a, b, c, d, sum, x, y, z, base, ans, k;
#include "Alice.h"
#include "Bob.h"
ll idx[n_],bit[n_];
vector<pair<int,int>> Alice(){
// add your code here
// change below into your code
long long x = setN(5000);
vector<pair<int,int>>res;
for(int i=1;i<=5000;i++)idx[i]=i;
for(int i=2;i<5000;i++){
bit[i]=(++base)%60;
//0 ~ 59
}
for(int i=1;i<n_;i++){
a=rand()%5000+1,b=rand()%5000+1;
swap(idx[a],idx[b]);
}
for(int i=2;i<5000;i++){
if((1ll<<bit[i]) & x){
res.push_back({i,5000});
}
else{
res.push_back({1,i});
}
}
res.push_back({1,5000});
return res;
}
long long Bob(vector<pair<int,int>> V){
// add your code here
ll res=0;
for(auto [a,b]:V){
if(a==1 && b==5000)continue;
if(b==5000){
res|=(1ll<<bit[a]);
}
}
return res; // change this into your code
}
#include<bits/stdc++.h>
#define all(v) v.begin(),v.end()
using namespace std;
using ll = long long;
using P = pair<ll, ll>;
using PP = pair<ll, P>;
const ll n_ =1e7+10, inf = (ll)2e9 * (ll)1e9 + 7, mod = 998244353;
ll n, m, tc = 1, a, b, c, d, sum, x, y, z, base, ans, k;
#include "Alice.h"
#include "Bob.h"
ll idx[n_],bit[n_];
vector<pair<int,int>> Alice(){
// add your code here
// change below into your code
long long x = setN(5000);
vector<pair<int,int>>res;
for(int i=1;i<=5000;i++)idx[i]=i;
for(int i=2;i<5000;i++){
bit[i]=(++base)%60;
//0 ~ 59
}
for(int i=1;i<n_;i++){
a=rand()%5000+1,b=rand()%5000+1;
swap(idx[a],idx[b]);
}
for(int i=2;i<5000;i++){
if((1ll<<bit[i]) & x){
res.push_back({i,5000});
}
else{
res.push_back({1,i});
}
}
res.push_back({1,5000});
return res;
}
long long Bob(vector<pair<int,int>> V){
// add your code here
ll res=0;
for(auto [a,b]:V){
if(a==1 && b==5000)continue;
if(b==5000){
res|=(1ll<<bit[a]);
}
}
return res; // change this into your code
}