Submission #40969427


Source Code Expand

#include<bits/stdc++.h>
#define For(i,a,b) for(int i=(a);i<=(b);++i)
#define Rep(i,a,b) for(int i=(a);i>=(b);--i)
#define int long long
using namespace std;
inline int read()
{
	char c=getchar();int x=0;bool f=0;
	for(;!isdigit(c);c=getchar())f^=!(c^45);
	for(;isdigit(c);c=getchar())x=(x<<1)+(x<<3)+(c^48);
	if(f)x=-x;return x;
}

#define fi first
#define se second
#define pb push_back
#define mkp make_pair
typedef pair<int,int>pii;
typedef vector<int>vi;

#define maxn 800005
#define inf 0x3f3f3f3f3f3f3f3f

int n,S,T,A,mxs;
int x[66],c[66],sx[666],sc[666];

int f[42][2][2][260],g[260];
bool vis[260];

signed main()
{
	n=read(),S=read(),T=read(),A=read(),mxs=1<<n;
	For(i,0,n-1)x[i]=read(),c[i]=read();
	For(s,0,mxs-1)
		For(i,0,n-1)
			if(s>>i&1)sx[s]^=x[i],sc[s]+=c[i];
	memset(f,63,sizeof f);
	For(s,0,mxs-1)
		For(i,0,1) For(j,0,1) f[0][i][j][s]=sc[s]+A*j;
	For(i,0,39){
		// from a to b
		For(j0,0,1)For(j1,0,1){
			int a=j0?0:(S>>i&1);
			int b=j1?1:(T>>i&1);
			For(s,0,mxs-1)
				if((sx[s]>>i&1)==(a^b))
					f[i+1][j0][j1][s]=f[i][j0][j1][s];
		}
		For(j0,0,1){
			int a=j0?0:(S>>i&1);
			memset(g,63,sizeof g);
			memset(vis,0,sizeof vis);
			For(s,0,mxs-1)
				if((sx[s]>>i&1)==a) g[s]=f[i][j0][1][s];
			while(1){
				int mn=inf,u=-1;
				For(s,0,mxs-1)
					if(!vis[s] && g[s]<mn)mn=g[s],u=s;
				if(u==-1)break;
				vis[u]=1;
				For(s,0,mxs-1)
					if((sx[s]>>i&1)==1)
						g[s^u]=min(g[s^u],g[u]+f[i][1][1][s]); 
				For(j1,0,1){
					int b=j1?1:(T>>i&1);
					For(s,0,mxs-1)
						if((sx[s]>>i&1)==(b^1))
							f[i+1][j0][j1][u^s]=min(g[u]+f[i][1][j1][s],f[i+1][j0][j1][u^s]);
				}
			}
		}
	}
	int res=inf;
	For(i,0,mxs-1)res=min(res,f[40][0][0][i]);
	if(res==inf)puts("-1");
	else cout<<res;
	return 0;
}

Submission Info

Submission Time
Task E - Increment or XOR
User Rainbow_sjy
Language C++ (GCC 9.2.1)
Score 1400
Code Size 1809 Byte
Status AC
Exec Time 45 ms
Memory 3944 KiB

Compile Error

./Main.cpp: In function ‘long long int read()’:
./Main.cpp:11:2: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
   11 |  if(f)x=-x;return x;
      |  ^~
./Main.cpp:11:12: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
   11 |  if(f)x=-x;return x;
      |            ^~~~~~

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 1400 / 1400
Status
AC × 4
AC × 57
Set Name Test Cases
Sample 01.txt, 02.txt, 03.txt, 04.txt
All 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, 39.txt, 40.txt, 41.txt, 42.txt, 43.txt, 44.txt, 45.txt, 46.txt, 47.txt, 48.txt, 49.txt, 50.txt, 51.txt, 52.txt, 53.txt, 54.txt, 55.txt, 56.txt, 57.txt
Case Name Status Exec Time Memory
01.txt AC 6 ms 3896 KiB
02.txt AC 2 ms 3888 KiB
03.txt AC 2 ms 3712 KiB
04.txt AC 42 ms 3904 KiB
05.txt AC 3 ms 3896 KiB
06.txt AC 2 ms 3868 KiB
07.txt AC 2 ms 3764 KiB
08.txt AC 4 ms 3760 KiB
09.txt AC 38 ms 3760 KiB
10.txt AC 3 ms 3876 KiB
11.txt AC 38 ms 3772 KiB
12.txt AC 35 ms 3884 KiB
13.txt AC 38 ms 3712 KiB
14.txt AC 44 ms 3896 KiB
15.txt AC 45 ms 3900 KiB
16.txt AC 42 ms 3900 KiB
17.txt AC 43 ms 3848 KiB
18.txt AC 36 ms 3764 KiB
19.txt AC 41 ms 3944 KiB
20.txt AC 41 ms 3844 KiB
21.txt AC 39 ms 3768 KiB
22.txt AC 39 ms 3944 KiB
23.txt AC 41 ms 3928 KiB
24.txt AC 42 ms 3836 KiB
25.txt AC 42 ms 3872 KiB
26.txt AC 42 ms 3876 KiB
27.txt AC 42 ms 3880 KiB
28.txt AC 40 ms 3712 KiB
29.txt AC 38 ms 3712 KiB
30.txt AC 36 ms 3848 KiB
31.txt AC 36 ms 3900 KiB
32.txt AC 33 ms 3764 KiB
33.txt AC 38 ms 3716 KiB
34.txt AC 38 ms 3900 KiB
35.txt AC 38 ms 3836 KiB
36.txt AC 36 ms 3900 KiB
37.txt AC 38 ms 3716 KiB
38.txt AC 40 ms 3900 KiB
39.txt AC 40 ms 3904 KiB
40.txt AC 40 ms 3844 KiB
41.txt AC 39 ms 3844 KiB
42.txt AC 41 ms 3944 KiB
43.txt AC 41 ms 3928 KiB
44.txt AC 39 ms 3760 KiB
45.txt AC 39 ms 3884 KiB
46.txt AC 43 ms 3876 KiB
47.txt AC 39 ms 3928 KiB
48.txt AC 45 ms 3760 KiB
49.txt AC 42 ms 3896 KiB
50.txt AC 41 ms 3716 KiB
51.txt AC 39 ms 3944 KiB
52.txt AC 41 ms 3760 KiB
53.txt AC 41 ms 3716 KiB
54.txt AC 41 ms 3840 KiB
55.txt AC 2 ms 3880 KiB
56.txt AC 4 ms 3768 KiB
57.txt AC 2 ms 3752 KiB