WA 4个点求条
查看原帖
WA 4个点求条
941431
Autream楼主2024/3/31 19:18

提交记录

#include<bits/stdc++.h>
#define arrout(a,n) rep(i,1,n)std::cout<<a[i]<<" "
#define arrin(a,n) rep(i,1,n)std::cin>>a[i]
#define rep(i,x,n) for(int i=x;i<=n;i++)
#define dep(i,x,n) for(int i=x;i>=n;i--)
#define erg(i,x) for(int i=head[x];i;i=e[i].nex)
#define dbg(x) std::cout<<#x<<":"<<x<<" "
#define mem(a,x) memset(a,x,sizeof a)
#define all(x) x.begin(),x.end()
#define arrall(a,n) a+1,a+1+n
#define PII std::pair<int,int>
#define m_p std::make_pair
#define u_b upper_bound
#define l_b lower_bound
#define p_b push_back
#define CD const double
#define CI const int
#define int long long
#define il inline
#define ss second
#define ff first
#define itn int
CI N=1e5+5;
int a,b,A,B,C;
std::bitset<100> x,y,c;
signed main() {
    std::cin>>a>>b>>C;
    c=C;
    if((a+b+c.count())%2!=0||a+b+c.count()>120||a>b+c.count()||b>c.count()+a||c.count()>a+b) {
        puts("-1");
        exit(0);
    }
    rep(i,1,a) {
        bool flag=0;
        rep(j,1,b) {
            if(i+j==c.count()&&a-i==b-j) {
                A=i;
                B=j;
                flag=1;
                break;
            }
        }
        if(flag) {
            break;
        }
    }
    a-=A;
    b-=B;
    rep(i,0,59) {
        if(c[i]==0) {
            if(a>0&&b>0) {
                a--;
                b--;
                x[i]=1;
                y[i]=1;
            }
        } else {
            if(A>0) {
                A--;
                x[i]=1;
            } else if(B>0) {
                B--;
                y[i]=1;
            } else {
                puts("-1");
                exit(0);
            }
        }
    }
    // dbg(x);
    // dbg(y);
    // dbg(x.to_ullong());
    // dbg(y.to_ullong());
    std::cout<<x.to_ullong()<<" "<<y.to_ullong();
    return 0;
}
2024/3/31 19:18
加载中...