提出 #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
結果
AC × 2
AC × 46
セット名 テストケース
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