Submission #39099539
Source Code Expand
#include<bits/stdc++.h>
using namespace std;
const long long N=11,M=330,INF=1e18;
int d=40;
long long n,S,T,A;
long long Y[N],C[N];
long long s[M],p[M];
long long dp[44][2][2][M];
long long f[M];
bool vis[M];
void gmin(long long &x,long long y){
x=min(x,y);
}
int main(){
// freopen("1.txt","r",stdin);
// freopen("2.txt","w",stdout);
cin>>n>>S>>T>>A;
for(int i=0;i<n;i++) cin>>Y[i]>>C[i];
for(int mac=0;mac<(1<<n);mac++){
for(int i=0;i<n;i++){
if(mac>>i & 1){
s[mac]+=C[i];
p[mac]^=Y[i];
}
}
}
for(int t=0;t<=d;t++)
for(int id1=0;id1<=1;id1++)
for(int id2=0;id2<=1;id2++)
for(int mac=0;mac<(1<<n);mac++)
dp[t][id1][id2][mac]=INF;
for(int mac=0;mac<(1<<n);mac++){
for(int id1=0;id1<=1;id1++)
dp[0][id1][0][mac]=s[mac],dp[0][id1][1][mac]=s[mac]+A;
}
for(int t=0;t<=d;t++){
for(int id1=0;id1<=1;id1++){
for(int id2=0;id2<=1;id2++){
int st=id1?(0):(S>>t & 1ll),ed=id2?1:(T>>t & 1ll);
for(int mac=0;mac<(1<<n);mac++){
if((p[mac]>>t & 1ll)==(st^ed))
gmin(dp[t+1][id1][id2][mac],dp[t][id1][id2][mac]);
}
}
}
for(int id1=0;id1<=1;id1++){
int st=id1?(0):(S>>t & 1ll);
for(int mac=0;mac<(1<<n);mac++) f[mac]=INF,vis[mac]=0;
for(int mac=0;mac<(1<<n);mac++){
if((p[mac]>>t & 1ll)==st)
gmin(f[mac],dp[t][id1][1][mac]);
}
for(int k=1;k<=(1<<n);k++){
long long mn=INF,mac=-1;
for(int mac_=0;mac_<(1<<n);mac_++){
if(!vis[mac_] && f[mac_]<=mn) mn=f[mac_],mac=mac_;
}
vis[mac]=1;
for(int MAC=0;MAC<(1<<n);MAC++){
if(p[MAC]>>t & 1ll)
gmin(f[mac^MAC],f[mac]+dp[t][1][1][MAC]);
}
}
for(int id2=0;id2<=1;id2++){
int ed=id2?1:(T>>t & 1ll);
for(int mac=0;mac<(1<<n);mac++){
for(int MAC=0;MAC<(1<<n);MAC++){
if((p[MAC]>>t & 1ll)==(ed^1)){
gmin(dp[t+1][id1][id2][mac^MAC],f[mac]+dp[t][1][id2][MAC]);
}
}
}
}
}
}
long long ans=INF;
for(int mac=0;mac<(1<<n);mac++) ans=min(ans,dp[d][0][0][mac]);
if(ans==INF) puts("-1");
else cout<<ans;
}
Submission Info
| Submission Time | |
|---|---|
| Task | E - Increment or XOR |
| User | Appleblue17 |
| Language | C++ (GCC 9.2.1) |
| Score | 1400 |
| Code Size | 2150 Byte |
| Status | AC |
| Exec Time | 43 ms |
| Memory | 4000 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 1400 / 1400 | ||||
| Status |
|
|
| 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 | 8 ms | 3908 KiB |
| 02.txt | AC | 2 ms | 3980 KiB |
| 03.txt | AC | 2 ms | 3860 KiB |
| 04.txt | AC | 43 ms | 3816 KiB |
| 05.txt | AC | 2 ms | 3972 KiB |
| 06.txt | AC | 2 ms | 3860 KiB |
| 07.txt | AC | 2 ms | 3924 KiB |
| 08.txt | AC | 3 ms | 3868 KiB |
| 09.txt | AC | 34 ms | 3812 KiB |
| 10.txt | AC | 4 ms | 3920 KiB |
| 11.txt | AC | 40 ms | 3928 KiB |
| 12.txt | AC | 29 ms | 3864 KiB |
| 13.txt | AC | 38 ms | 3928 KiB |
| 14.txt | AC | 39 ms | 3864 KiB |
| 15.txt | AC | 41 ms | 3808 KiB |
| 16.txt | AC | 38 ms | 3860 KiB |
| 17.txt | AC | 39 ms | 3924 KiB |
| 18.txt | AC | 37 ms | 3972 KiB |
| 19.txt | AC | 41 ms | 3916 KiB |
| 20.txt | AC | 38 ms | 3972 KiB |
| 21.txt | AC | 39 ms | 3928 KiB |
| 22.txt | AC | 37 ms | 3924 KiB |
| 23.txt | AC | 35 ms | 3808 KiB |
| 24.txt | AC | 41 ms | 3924 KiB |
| 25.txt | AC | 39 ms | 3912 KiB |
| 26.txt | AC | 42 ms | 3916 KiB |
| 27.txt | AC | 40 ms | 3944 KiB |
| 28.txt | AC | 37 ms | 3812 KiB |
| 29.txt | AC | 36 ms | 3928 KiB |
| 30.txt | AC | 30 ms | 3916 KiB |
| 31.txt | AC | 31 ms | 3856 KiB |
| 32.txt | AC | 34 ms | 3872 KiB |
| 33.txt | AC | 35 ms | 3920 KiB |
| 34.txt | AC | 34 ms | 3860 KiB |
| 35.txt | AC | 35 ms | 3808 KiB |
| 36.txt | AC | 37 ms | 3952 KiB |
| 37.txt | AC | 37 ms | 4000 KiB |
| 38.txt | AC | 38 ms | 3944 KiB |
| 39.txt | AC | 41 ms | 3868 KiB |
| 40.txt | AC | 37 ms | 3932 KiB |
| 41.txt | AC | 32 ms | 3812 KiB |
| 42.txt | AC | 37 ms | 3812 KiB |
| 43.txt | AC | 36 ms | 4000 KiB |
| 44.txt | AC | 37 ms | 3972 KiB |
| 45.txt | AC | 42 ms | 3856 KiB |
| 46.txt | AC | 41 ms | 3984 KiB |
| 47.txt | AC | 39 ms | 3864 KiB |
| 48.txt | AC | 38 ms | 4000 KiB |
| 49.txt | AC | 38 ms | 3928 KiB |
| 50.txt | AC | 38 ms | 3928 KiB |
| 51.txt | AC | 37 ms | 3928 KiB |
| 52.txt | AC | 39 ms | 3856 KiB |
| 53.txt | AC | 39 ms | 3924 KiB |
| 54.txt | AC | 37 ms | 3932 KiB |
| 55.txt | AC | 3 ms | 4000 KiB |
| 56.txt | AC | 2 ms | 3808 KiB |
| 57.txt | AC | 2 ms | 3996 KiB |