Submission #2359624


Source Code Expand

#include <stdio.h>
#include <algorithm>
using namespace std;

struct matrix{
	matrix(){
		for (int i=0;i<36;i++) for (int j=0;j<36;j++) a[i][j] = 0;
	}
	bool a[36][36];

	matrix operator *(matrix t){
		matrix r;
		for (int i=0;i<36;i++) for (int j=0;j<36;j++) for (int k=0;k<36;k++) if (a[i][k] & t.a[k][j])
			r.a[i][j] ^= 1;
		return r;
	}
};

struct data{
	long long a, pos;
	bool operator <(const data &t)const{
		if (a != t.a) return a < t.a;
		return pos < t.pos;
	}
}P[1<<18],Q[1<<18];

int bc[1<<18];

int main()
{
	for (int i=1;i<(1<<18);i++){
		int x = i & (-i);
		bc[i] = bc[i-x] + 1;
	}

	long long A,B,X; scanf ("%lld %lld %lld",&A,&B,&X);

	matrix b;
	for (int i=0;i<35;i++) b.a[i][i+1] = 1;
	for (int i=0;i<36;i++) if (B & (1ll << i)) b.a[i][0] = 1;

	long long BC[36] = {0,};
	for (int i=0;i<36;i++) for (int j=0;j<36;j++) if (b.a[i][j]) BC[i] |= 1ll << j;
	for (int i=0;i<(1<<18);i++){
		long long n = 0;
		for (int i=0;i<36;i++){
			long long o = BC[i] & X;
			if ((bc[o>>18] + bc[o%(1<<18)]) % 2) n |= 1ll << i;
		}
		P[i] = {X=n,i+1};
	}

	for (int i=0;i<18;i++) b = b * b;
	for (int i=0;i<36;i++){
		BC[i] = 0;
		for (int j=0;j<36;j++) if (b.a[i][j]) BC[i] |= 1ll << j;
	}
	for (int i=0;i<(1<<18);i++){
		long long n = 0;
		for (int i=0;i<36;i++){
			long long o = BC[i] & A;
			if ((bc[o>>18] + bc[o%(1<<18)]) % 2) n |= 1ll << i;
		}
		Q[i] = {A=n,(1ll<<18)*(i+1)};
	}

	sort(P,P+(1<<18));
	sort(Q,Q+(1<<18));

	long long ans = 1e18;
	int i = 0, j = 0;
	while (i < (1<<18) && j < (1<<18)){
		if (P[i].a < Q[j].a) i++;
		else if (P[i].a > Q[j].a) j++;
		else{
			if (ans > Q[j].pos - P[i].pos)
				ans = Q[j].pos - P[i].pos;
			i++;
		}
	}
	if (ans > 1e17) ans = -1;

	printf ("%lld\n",ans);

	return 0;
}

Submission Info

Submission Time
Task K - 乱数調整
User august14
Language C++14 (GCC 5.4.1)
Score 0
Code Size 1813 Byte
Status WA
Exec Time 192 ms
Memory 9472 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:36:52: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  long long A,B,X; scanf ("%lld %lld %lld",&A,&B,&X);
                                                    ^

Judge Result

Set Name Subtask All
Score / Max Score 0 / 30 0 / 270
Status
AC × 14
WA × 6
AC × 51
WA × 12
Set Name Test Cases
Subtask subtask_00.txt, subtask_01.txt, subtask_02.txt, subtask_03.txt, subtask_04.txt, subtask_05.txt, subtask_06.txt, subtask_07.txt, subtask_08.txt, subtask_09.txt, subtask_10.txt, subtask_11.txt, subtask_12.txt, subtask_13.txt, subtask_14.txt, subtask_15.txt, subtask_16.txt, subtask_17.txt, subtask_18.txt, subtask_19.txt
All scrambled_00.txt, scrambled_01.txt, scrambled_02.txt, scrambled_03.txt, scrambled_04.txt, scrambled_05.txt, scrambled_06.txt, scrambled_07.txt, scrambled_08.txt, scrambled_09.txt, scrambled_10.txt, scrambled_11.txt, scrambled_12.txt, scrambled_13.txt, scrambled_14.txt, scrambled_15.txt, scrambled_16.txt, scrambled_17.txt, scrambled_18.txt, scrambled_19.txt, scrambled_20.txt, scrambled_21.txt, scrambled_22.txt, scrambled_23.txt, scrambled_24.txt, scrambled_25.txt, scrambled_26.txt, scrambled_27.txt, scrambled_28.txt, scrambled_29.txt, scrambled_30.txt, scrambled_31.txt, scrambled_32.txt, scrambled_33.txt, scrambled_34.txt, scrambled_35.txt, scrambled_36.txt, scrambled_37.txt, scrambled_38.txt, scrambled_39.txt, scrambled_40.txt, scrambled_41.txt, scrambled_42.txt, subtask_00.txt, subtask_01.txt, subtask_02.txt, subtask_03.txt, subtask_04.txt, subtask_05.txt, subtask_06.txt, subtask_07.txt, subtask_08.txt, subtask_09.txt, subtask_10.txt, subtask_11.txt, subtask_12.txt, subtask_13.txt, subtask_14.txt, subtask_15.txt, subtask_16.txt, subtask_17.txt, subtask_18.txt, subtask_19.txt
Case Name Status Exec Time Memory
scrambled_00.txt AC 82 ms 9344 KB
scrambled_01.txt AC 83 ms 9344 KB
scrambled_02.txt AC 74 ms 9344 KB
scrambled_03.txt AC 63 ms 9344 KB
scrambled_04.txt AC 133 ms 9344 KB
scrambled_05.txt AC 135 ms 9344 KB
scrambled_06.txt AC 133 ms 9344 KB
scrambled_07.txt AC 136 ms 9344 KB
scrambled_08.txt AC 141 ms 9344 KB
scrambled_09.txt AC 134 ms 9344 KB
scrambled_10.txt AC 141 ms 9344 KB
scrambled_11.txt AC 143 ms 9344 KB
scrambled_12.txt AC 136 ms 9344 KB
scrambled_13.txt AC 132 ms 9344 KB
scrambled_14.txt AC 180 ms 9344 KB
scrambled_15.txt AC 187 ms 9344 KB
scrambled_16.txt WA 188 ms 9344 KB
scrambled_17.txt WA 181 ms 9344 KB
scrambled_18.txt AC 187 ms 9344 KB
scrambled_19.txt AC 188 ms 9344 KB
scrambled_20.txt AC 191 ms 9344 KB
scrambled_21.txt AC 191 ms 9344 KB
scrambled_22.txt AC 191 ms 9344 KB
scrambled_23.txt AC 189 ms 9344 KB
scrambled_24.txt AC 192 ms 9344 KB
scrambled_25.txt AC 184 ms 9344 KB
scrambled_26.txt AC 191 ms 9344 KB
scrambled_27.txt AC 191 ms 9344 KB
scrambled_28.txt WA 55 ms 9344 KB
scrambled_29.txt WA 80 ms 9344 KB
scrambled_30.txt AC 56 ms 9344 KB
scrambled_31.txt AC 94 ms 9472 KB
scrambled_32.txt WA 56 ms 9344 KB
scrambled_33.txt WA 61 ms 9344 KB
scrambled_34.txt AC 132 ms 9344 KB
scrambled_35.txt AC 128 ms 9344 KB
scrambled_36.txt AC 130 ms 9344 KB
scrambled_37.txt AC 138 ms 9344 KB
scrambled_38.txt AC 131 ms 9472 KB
scrambled_39.txt AC 174 ms 9344 KB
scrambled_40.txt AC 167 ms 9344 KB
scrambled_41.txt AC 174 ms 9344 KB
scrambled_42.txt AC 190 ms 9344 KB
subtask_00.txt AC 88 ms 9344 KB
subtask_01.txt AC 105 ms 9344 KB
subtask_02.txt WA 116 ms 9344 KB
subtask_03.txt WA 116 ms 9344 KB
subtask_04.txt AC 122 ms 9344 KB
subtask_05.txt AC 107 ms 9472 KB
subtask_06.txt AC 122 ms 9344 KB
subtask_07.txt AC 104 ms 9344 KB
subtask_08.txt AC 122 ms 9344 KB
subtask_09.txt AC 114 ms 9344 KB
subtask_10.txt AC 99 ms 9344 KB
subtask_11.txt AC 119 ms 9344 KB
subtask_12.txt AC 109 ms 9344 KB
subtask_13.txt AC 101 ms 9344 KB
subtask_14.txt WA 56 ms 9344 KB
subtask_15.txt WA 80 ms 9344 KB
subtask_16.txt AC 56 ms 9344 KB
subtask_17.txt AC 56 ms 9344 KB
subtask_18.txt WA 56 ms 9344 KB
subtask_19.txt WA 61 ms 9344 KB