QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#205224 | #7565. Harumachi Kaze | ucup-team004# | WA | 1925ms | 8324kb | C++20 | 2.7kb | 2023-10-07 15:14:02 | 2023-10-07 15:14:03 |
Judging History
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: ''