提出 #32518994
ソースコード 拡げる
#include <bits/stdc++.h>
using namespace std;
# define Rep(i,a,b) for(int i=a;i<=b;i++)
# define _Rep(i,a,b) for(int i=a;i>=b;i--)
# define RepG(i,u) for(int i=head[u];~i;i=e[i].next)
const int N=2e5+5;
const int M=N*31;
typedef long long ll;
typedef double db;
# define chkmax(a,b) a=max(a,b)
# define chkmin(a,b) a=min(a,b)
# define PII pair<int,int>
# define mkp make_pair
template<typename T> void read(T &x){
x=0;int f=1;
char c=getchar();
for(;!isdigit(c);c=getchar())if(c=='-')f=-1;
for(;isdigit(c);c=getchar())x=(x<<1)+(x<<3)+c-'0';
x*=f;
}
int n;
int a[N],b[N];
int trie[M][2],sum[M],tot;
ll ans;
void insert(int x,int k){
int u=0;
int now=30;
while(~now&&(x>>now&1^1))now--;
_Rep(i,now,0){
int j=x>>i&1;
if(!trie[u][j])trie[u][j]=++tot;
u=trie[u][j];
}
sum[u]+=k;
}
void dfs(int u){
if(trie[u][0]){
dfs(trie[u][0]);
ans+=abs(sum[trie[u][0]]);
sum[u]+=sum[trie[u][0]];
}
if(trie[u][1]){
dfs(trie[u][1]);
if(sum[trie[u][1]]<0){
puts("-1");
exit(0);
}
ans+=abs(sum[trie[u][1]]);
sum[u]+=sum[trie[u][1]];
}
}
int main()
{
// freopen("testdata.in","r",stdin);
read(n);
Rep(i,1,n)read(a[i]);
Rep(i,1,n)read(b[i]);
Rep(i,1,n)insert(a[i],1);
Rep(i,1,n)insert(b[i],-1);
dfs(0);
printf("%lld\n",ans);
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | Ex - Multiply or Divide by 2 |
| ユーザ | devout |
| 言語 | C++ (GCC 9.2.1) |
| 得点 | 600 |
| コード長 | 1502 Byte |
| 結果 | AC |
| 実行時間 | 68 ms |
| メモリ | 20836 KiB |
コンパイルエラー
./Main.cpp: In function ‘void insert(int, int)’:
./Main.cpp:36:24: warning: suggest parentheses around arithmetic in operand of ‘^’ [-Wparentheses]
36 | while(~now&&(x>>now&1^1))now--;
| ~~~~~~^~
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 600 / 600 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 01_srnd_00.txt, 01_srnd_01.txt, 01_srnd_02.txt, 01_srnd_03.txt, 01_srnd_04.txt, 01_srnd_05.txt, 01_srnd_06.txt, 01_srnd_07.txt, 01_srnd_08.txt, 01_srnd_09.txt, 01_srnd_10.txt, 01_srnd_11.txt, 01_srnd_12.txt, 01_srnd_13.txt, 02_rnd_00.txt, 02_rnd_01.txt, 02_rnd_02.txt, 02_rnd_03.txt, 02_rnd_04.txt, 02_rnd_05.txt, 02_rnd_06.txt, 02_rnd_07.txt, 03_rndl_00.txt, 03_rndl_01.txt, 03_rndl_02.txt, 03_rndl_03.txt, 03_rndl_04.txt, 03_rndl_05.txt, 03_rndl_06.txt, 03_rndl_07.txt, 03_rndl_08.txt, 03_rndl_09.txt, 03_rndl_10.txt, 03_rndl_11.txt, 04_max_00.txt, 04_max_01.txt, 04_max_02.txt, 04_max_03.txt, 04_max_04.txt, 04_max_05.txt, 04_max_06.txt, 05_tozero_00.txt, 05_tozero_01.txt, 05_tozero_02.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00_sample_00.txt | AC | 8 ms | 3728 KiB |
| 00_sample_01.txt | AC | 2 ms | 3364 KiB |
| 01_srnd_00.txt | AC | 2 ms | 3540 KiB |
| 01_srnd_01.txt | AC | 3 ms | 3420 KiB |
| 01_srnd_02.txt | AC | 2 ms | 3544 KiB |
| 01_srnd_03.txt | AC | 3 ms | 3608 KiB |
| 01_srnd_04.txt | AC | 2 ms | 3664 KiB |
| 01_srnd_05.txt | AC | 1 ms | 3628 KiB |
| 01_srnd_06.txt | AC | 2 ms | 3632 KiB |
| 01_srnd_07.txt | AC | 2 ms | 3420 KiB |
| 01_srnd_08.txt | AC | 2 ms | 3660 KiB |
| 01_srnd_09.txt | AC | 5 ms | 3600 KiB |
| 01_srnd_10.txt | AC | 2 ms | 3452 KiB |
| 01_srnd_11.txt | AC | 2 ms | 3568 KiB |
| 01_srnd_12.txt | AC | 2 ms | 3548 KiB |
| 01_srnd_13.txt | AC | 2 ms | 3604 KiB |
| 02_rnd_00.txt | AC | 47 ms | 18860 KiB |
| 02_rnd_01.txt | AC | 47 ms | 18808 KiB |
| 02_rnd_02.txt | AC | 47 ms | 19080 KiB |
| 02_rnd_03.txt | AC | 66 ms | 20712 KiB |
| 02_rnd_04.txt | AC | 53 ms | 18968 KiB |
| 02_rnd_05.txt | AC | 55 ms | 18972 KiB |
| 02_rnd_06.txt | AC | 57 ms | 19196 KiB |
| 02_rnd_07.txt | AC | 65 ms | 20664 KiB |
| 03_rndl_00.txt | AC | 53 ms | 18840 KiB |
| 03_rndl_01.txt | AC | 48 ms | 18860 KiB |
| 03_rndl_02.txt | AC | 57 ms | 18948 KiB |
| 03_rndl_03.txt | AC | 68 ms | 20644 KiB |
| 03_rndl_04.txt | AC | 52 ms | 18956 KiB |
| 03_rndl_05.txt | AC | 55 ms | 18908 KiB |
| 03_rndl_06.txt | AC | 55 ms | 19084 KiB |
| 03_rndl_07.txt | AC | 65 ms | 20668 KiB |
| 03_rndl_08.txt | AC | 51 ms | 19036 KiB |
| 03_rndl_09.txt | AC | 55 ms | 18980 KiB |
| 03_rndl_10.txt | AC | 58 ms | 19084 KiB |
| 03_rndl_11.txt | AC | 67 ms | 20836 KiB |
| 04_max_00.txt | AC | 22 ms | 4440 KiB |
| 04_max_01.txt | AC | 23 ms | 4244 KiB |
| 04_max_02.txt | AC | 25 ms | 4156 KiB |
| 04_max_03.txt | AC | 23 ms | 4284 KiB |
| 04_max_04.txt | AC | 22 ms | 4324 KiB |
| 04_max_05.txt | AC | 29 ms | 4324 KiB |
| 04_max_06.txt | AC | 21 ms | 4284 KiB |
| 05_tozero_00.txt | AC | 47 ms | 18832 KiB |
| 05_tozero_01.txt | AC | 47 ms | 19036 KiB |
| 05_tozero_02.txt | AC | 45 ms | 18976 KiB |