QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#670555 | #7013. Rikka with Ants | pengpeng_fudan | WA | 1ms | 3868kb | C++23 | 2.0kb | 2024-10-23 22:13:54 | 2024-10-23 22:13:56 |
Judging History
answer
#include<bits/stdc++.h>
#define double long double
using namespace std;
void solve(){
int n;
cin>>n;
vector<int> a(n);
for(int i=0;i<n;i++) cin>>a[i];
int s1,e1,s2,e2;
cin>>s1>>e1>>s2>>e2;s1--,e1--,s2--,e2--;
pair<int,int> g[4];
auto get=[&](int s1,int e1,int s2,int e2)->double {
for(int i=0;i<4;i++){
g[i]={0,0};
vector<int> lzg(n);
int t1=((i&1)?-1:1),t2=((i>>1&1)?-1:1);
for(int j=s1;j!=e1;j=(j+t1+n)%n) {
t1==1?lzg[j]++:lzg[(j-1+n)%n]++;
}
for(int j=s2;j!=e2;j=(j+t2+n)%n) {
t2==1?lzg[j]++:lzg[(j-1+n)%n]++;
}
for(int j=s1;j!=e1;j=(j+t1+n)%n) {
int w=(t1==1?(lzg[j]==2?3:1):(lzg[(j-1+n)%n]==2?3:1));
g[i].first+=w*(t1==1?a[j]:a[(j-1+n)%n]);
}
for(int j=s2;j!=e2;j=(j+t2+n)%n){
int w=(t2==1?(lzg[j]==2?3:1):(lzg[(j-1+n)%n]==2?3:1));
g[i].second+=w*(t2==1?a[j]:a[(j-1+n)%n]);
}
// cerr<<g[i].first<<' '<<g[i].second<<'\n';
}
int a0=g[0].first,a1=g[1].first,a2=g[2].first,a3=g[3].first;
if(a0-a1-a2+a3==0) {
return a2<=a3?1:0;
}
double ans=(double)(a3-a1)/(a0-a1-a2+a3);
if(ans>1) ans=1;
if(ans<0) ans=0;
return ans;
};
double q1,q2;
q1=get(s1,e1,s2,e2);
swap(s1,s2),swap(e1,e2);
q2=get(s1,e1,s2,e2);
// cerr<<q1<<' '<<q2<<"?"<<'\n';
cout<<setprecision(16)<<q2*q1*g[0].second+(1-q2)*q1*g[1].second+q2*(1-q1)*g[2].second+(1-q2)*(1-q1)*g[3].second<<'\n';
cout<<setprecision(16)<<q2*q1*g[0].first+(1-q2)*q1*g[1].first+q2*(1-q1)*g[2].first+(1-q2)*(1-q1)*g[3].first<<'\n';
}
int main(){
ios::sync_with_stdio(0),cin.tie(0);
int _ = 1;
cin>>_;
while(_--) solve();
}
/*
2
5
1 5 2 4 3
1 2 3 4
5
1 5 2 4 3
1 3 2 4
*/
/*
1
5
1 5 2 4 3
1 2 3 4
*/
詳細信息
Test #1:
score: 0
Wrong Answer
time: 1ms
memory: 3868kb
input:
2 5 1 5 2 4 3 1 2 3 4 5 1 5 2 4 3 1 3 2 4
output:
1 2 14.66666666666667 14.66666666666667
result:
wrong output format Unexpected character #10, but ' ' expected