QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#205224#7565. Harumachi Kazeucup-team004#WA 1925ms8324kbC++202.7kb2023-10-07 15:14:022023-10-07 15:14:03

Judging History

你现在查看的是最新测评结果

  • [2023-10-07 15:14:03]
  • 评测
  • 测评结果:WA
  • 用时:1925ms
  • 内存:8324kb
  • [2023-10-07 15:14:02]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;

typedef unsigned long long ull;

ull add(ull x,ull y){
    cout<<"A "<<x<<' '<<y<<endl;
    ull t;cin>>t;
    return t;
}

bool cmp(ull x,ull y){
    cout<<"C "<<x<<' '<<y<<endl;
    ull t;cin>>t;
    return t==x;
}

const int N=100100;

ull sum0[2][N],sum1[2][N],a[2][N];
int n,q,B,id[N],lst[N];
vector<ull>ans;



void Init(int t){
    for(int i=1;i<=n;++i){
        if(id[i]!=id[i-1])
            sum0[t][i]=a[t][i];
        else
            sum0[t][i]=add(sum0[t][i-1],a[t][i]);
        if(id[i]!=id[i+1]){
            if(id[i]==1)
                sum1[t][id[i]]=sum0[t][i];
            else
                sum1[t][id[i]]=add(sum1[t][id[i]-1],sum0[t][i]);
        }
    }
}

void modify(int t,int x,ull y){
    a[t][x]=y;
    int i=x;
    for(;id[i]==id[x];++i){
        if(id[i]!=id[i-1])
            sum0[t][i]=a[t][i];
        else
            sum0[t][i]=add(sum0[t][i-1],a[t][i]);
    }
    --i;
    int j=id[i];
    for(;j<=id[n];++j){
        if(j==1)
            sum1[t][j]=sum0[t][lst[j]];
        else
            sum1[t][j]=add(sum1[t][j-1],sum0[t][lst[j]]);
    }
}

ull get_value(int t,int i){
    if(id[i]==1)
        return sum0[t][i];
    return add(sum0[t][i],sum1[t][id[i]-1]);
}

void query(int k){
    int l=max(k-n,1),r=min(n+1,k);
    while(l<r){
        int mid=(l+r)/2;
        ull x=get_value(0,mid),y=get_value(1,k-mid);
        if(cmp(x,y))
            l=mid+1;
        else
            r=mid;
    }
    int u=l,v=k-l+1;
    if(u>n){
        ans.push_back(get_value(1,v));
        return;
    }
    if(v>n){
        ans.push_back(get_value(0,u));
        return;
    }
    ull p=get_value(1,v),q=get_value(0,u);
    if(cmp(p,q))
        ans.push_back(p);
    else
        ans.push_back(q);
}

vector<array<ull,4> >qry;

int main(){
    ios::sync_with_stdio(0);
    cin>>n>>q>>B;B=sqrt(n)+1;
    for(int i=1;i<=n;++i)
        cin>>a[0][i];
    for(int i=1;i<=n;++i)
        cin>>a[1][i];
    for(int i=1;i<=n;++i)
        id[i]=i/B+1,lst[id[i]]=i;
    for(int i=0;i<q;++i){
        ull tp;cin>>tp;
        if(tp==1){
            ull x,y,z;cin>>x>>y>>z;
            qry.push_back(array<ull,4>{tp,x,y,z});
        }else{
            ull x;cin>>x;
            qry.push_back(array<ull,4>{tp,x,0,0});
        }
    }
    Init(0);Init(1);
    for(int i=0;i<q;++i){
        int tp;tp=qry[i][0];
        if(tp==1){
            modify(qry[i][1]-1,qry[i][2],qry[i][3]);
        }else{
            query(qry[i][1]);
        }
    }
    cout<<"! "<<ans.size()<<endl;
    for(int i=0;i<(int)ans.size();++i)
        cout<<ans[i]<<" \n"[i==(int)ans.size()-1];
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 7544kb

input:

2 3 2
288230376151711744 864691128455135232
1441151880758558720 2017612633061982208
2 3
1 2 2 2594073385365405696
2 3
1152921504606846976
3458764513820540928
1152921504606846976
1152921504606846976
4035225266123964416
1152921504606846976
1152921504606846976

output:

A 288230376151711744 864691128455135232
A 1441151880758558720 2017612633061982208
A 864691128455135232 288230376151711744
C 1152921504606846976 1441151880758558720
A 1441151880758558720 2594073385365405696
A 864691128455135232 288230376151711744
C 1152921504606846976 1441151880758558720
! 2
14411518...

result:

ok 2 lines

Test #2:

score: 0
Accepted
time: 0ms
memory: 5680kb

input:

3 5 3
2017612633061982208 864691128455135232 2305843009213693952
1441151880758558720 2017612633061982208 288230376151711744
2 5
2 2
1 1 3 1729382256910270464
1 2 1 2017612633061982208
2 5
3170534137668829184
5188146770730811392
2305843009213693952
3746994889972252672
5188146770730811392
345876451382...

output:

A 864691128455135232 2305843009213693952
A 2017612633061982208 3170534137668829184
A 2017612633061982208 288230376151711744
A 1441151880758558720 2305843009213693952
A 3170534137668829184 2017612633061982208
A 2017612633061982208 1441151880758558720
C 5188146770730811392 3458764513820540928
A 864691...

result:

ok 2 lines

Test #3:

score: 0
Accepted
time: 1458ms
memory: 8048kb

input:

16000 20000 14
12381691541923575949 2314459967875656919 15240288079556723088 320873566057825844 1013209648229540810 17538037439317817183 11476444495745028170 14967174865083701448 17232652930598276562 7175999203534983334 4597650078600036201 13978217693115848142 17682091621678261784 488328147143975490...

output:

A 12381691541923575949 2314459967875656919
A 14696151509799232868 15240288079556723088
A 12486187300948059893 320873566057825844
A 12807060867005885737 1013209648229540810
A 13820270515235426547 17538037439317817183
A 13908055666145347667 11476444495745028170
A 7934247873482479774 149671748650837014...

result:

ok 2 lines

Test #4:

score: 0
Accepted
time: 1502ms
memory: 8176kb

input:

16000 20000 14
14874916021093924522 12369740409537030379 6287256359015658845 823444916947643237 4526221239260804705 11449122367236060745 5269387146536217002 12271448617436014402 2707995377102611522 953402166614134577 8882130735136249391 5659092195367212151 12689325453646244318 14372002311792512418 7...

output:

A 14874916021093924522 12369740409537030379
A 9794404142223058838 6287256359015658845
A 16081660501238717683 823444916947643237
A 16905105418186360920 4526221239260804705
A 2984582583737614009 11449122367236060745
A 15430196736275330307 5269387146536217002
A 3249331594403651246 12271448617436014402
...

result:

ok 2 lines

Test #5:

score: 0
Accepted
time: 1438ms
memory: 8324kb

input:

16000 20000 14
12315377266285165767 11473010392351879640 7998004721169407057 9573065544888591349 8327463206443780344 16951550409690804427 9014132268830135915 1328673092737196637 5921820488166554289 3905417438586104204 16182336802010099310 4414669279483371512 13388655175283310101 4417487293134062765 ...

output:

A 12315377266285165767 11473010392351879640
A 6338135370229149344 7998004721169407057
A 14336140091398556401 9573065544888591349
A 6458953347879251687 8327463206443780344
A 14786416554323032031 16951550409690804427
A 14287714675605940395 9014132268830135915
A 4855102870726524694 1328673092737196637
...

result:

ok 2 lines

Test #6:

score: -100
Wrong Answer
time: 1925ms
memory: 8272kb

input:

16000 20000 14
12381691541923575949 2314459967875656919 15240288079556723088 320873566057825844 1013209648229540810 17538037439317817183 11476444495745028170 14967174865083701448 17232652930598276562 7175999203534983334 4597650078600036201 13978217693115848142 17682091621678261784 488328147143975490...

output:

A 12381691541923575949 2314459967875656919
A 14696151509799232868 15240288079556723088
A 12486187300948059893 320873566057825844
A 12807060867005885737 1013209648229540810
A 13820270515235426547 17538037439317817183
A 13908055666145347667 11476444495745028170
A 7934247873482479774 149671748650837014...

result:

wrong answer 1st lines differ - expected: '15000', found: ''