QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#338028#5050. ValueKevin5307WA 1ms3564kbC++23818b2024-02-25 17:03:042024-02-25 17:03:04

Judging History

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

  • [2024-02-25 17:03:04]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:3564kb
  • [2024-02-25 17:03:04]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
using ll=long long;
ll a[100100],b[100100];
bool flag[100100];
int main()
{
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>a[i];
	for(int i=1;i<=n;i++)
		cin>>b[i];
	ll ans=a[1];
	for(int i=2;i<=n;i++)
		if(!flag[i])
		{
			if(i*i>n)
			{
				ans+=a[i];
				continue;
			}
			vector<pair<int,int>> vec;
			for(int j=i,c=1;j<=n;j*=i,c++)
				vec.emplace_back(j,c);
			ll mx=0;
			int m=vec.size();
			for(int j=0;j<(1<<m);j++)
			{
				ll tot=0;
				for(int k=0;k<m;k++)
					if(j>>k&1)
						tot+=a[vec[k].first];
				for(int k=0;k<m;k++) if(j>>k&1)
					for(int l=k+1;l<m;l++) if(j>>l&1)
						if(vec[l].second%vec[k].second==0)
							tot-=b[vec[l].first];
				mx=max(mx,tot);
			}
			ans+=mx;
		}
	cout<<ans<<endl;
	return 0;
}

详细

Test #1:

score: 0
Wrong Answer
time: 1ms
memory: 3564kb

input:

4
1 1 1 2
1 1 1 1

output:

6

result:

wrong answer 1st numbers differ - expected: '4', found: '6'