QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#208397#6770. Antsucup-team1004WA 1ms7568kbC++141.7kb2023-10-09 15:57:232023-10-09 15:57:23

Judging History

This is the latest submission verdict.

  • [2023-10-09 15:57:23]
  • Judged
  • Verdict: WA
  • Time: 1ms
  • Memory: 7568kb
  • [2023-10-09 15:57:23]
  • Submitted

answer

#include<bits/stdc++.h>
using namespace std;
using ll=long long;
template<typename T>
ostream& operator << (ostream &out,const vector<T>&x){
	if(x.empty())return out<<"[]";
	out<<'['<<x[0];
	for(int len=x.size(),i=1;i<len;i++)out<<','<<x[i];
	return out<<']';
}
template<typename T>
vector<T> ary(const T *a,int l,int r){
	return vector<T>{a+l,a+1+r};
}
template<typename T>
void debug(T x){
	cerr<<x<<'\n';
}
template<typename T,typename ...S>
void debug(T x,S ...y){
	cerr<<x<<' ',debug(y...);
}
const int N=1e6+10,V=1e9+1;
const ll INF=1e18;
int n,A,B,a[N],d[N];
ll ans[N];
bool cmpA(int x,int y){
	return a[x]<a[y];
}
bool cmpB(int x,int y){
	return a[x]>a[y];
}
void solve(int lim){
	ll res=lim/n*2ll*V;
	lim%=n;
	vector<int>A,B;
	for(int i=1;i<=n;i++){
		if(d[i])B.push_back(i);
		else A.push_back(i);
	}
	sort(A.begin(),A.end(),cmpA);
	sort(B.begin(),B.end(),cmpB);
	if(lim<A.size()){
		for(int i=0;i<lim;i++){
			ans[A[i]]=min(ans[A[i]],res+a[A[i]]+V+V);
		}
		for(int i=A.size()-1;i>=lim;i--){
			ans[A[i]]=min(ans[A[i]],res+a[A[i]]);
		}
		for(int i:B){
			ans[i]=min(ans[i],res+V+V-a[i]);
		}
	}else{
		lim-=A.size();
		for(int i:A){
			ans[i]=min(ans[i],res+V+V+a[i]);
		}
		for(int i=0;i<lim;i++){
			ans[B[i]]=min(ans[B[i]],res+V+V-a[B[i]]+V+V);
		}
		for(int i=B.size()-1;i>=lim;i--){
			ans[B[i]]=min(ans[B[i]],res+V+V-a[B[i]]);
		}
	}
}
int main(){
	scanf("%d%d%d",&n,&A,&B);
	for(int i=1;i<=n;i++)scanf("%d",&a[i]);
	for(int i=1;i<=n;i++)scanf("%d",&d[i]);
	fill(ans+1,ans+1+n,INF);
	solve(A);
	for(int i=1;i<=n;i++){
		a[i]=V-a[i],d[i]^=1;
	}
	solve(B);
	ll res=0;
	for(int i=1;i<=n;i++){
		res=max(res,ans[i]);
	}
	cout<<res<<endl;
	return 0;
}

詳細信息

Test #1:

score: 100
Accepted
time: 1ms
memory: 7568kb

input:

2 2 4
2 3
0 1

output:

4000000001

result:

ok single line: '4000000001'

Test #2:

score: -100
Wrong Answer
time: 1ms
memory: 7508kb

input:

1 1000000000 1000000000
500000000
0

output:

1000000000000000000

result:

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