Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
28461 A21μΘ_wjy 【BJ】T3 C++ 解答错误 30 298 MS 1908 KB 1028 2024-04-14 17:36:12

Tests(3/10):


#include<bits/stdc++.h> #define int long long #define doub long double #define m_p make_pair using namespace std; const int maxn=7e4+7; const int pr[9]={1,2,3,5,7,11,13,17,19}; const int pw[9]={0,8,5,3,3,2,2,2,2}; int tp[maxn]; int c_n[maxn]; int c_c[maxn]; int cnt=0; void dfs(int i,int val){ if(i==9){ tp[++cnt]=val; return; } for(int j=0,m=1;j<=pw[i];j++,m*=pr[i])dfs(i+1,m*val); } int n; int m[maxn]; int v[maxn]; int Dt[maxn]; signed main(){ cin>>n; for(int i=1;i<=n;i++)cin>>m[i]>>v[i],Dt[m[i]]+=v[i]; dfs(1,1); // cout<<"PP"<<endl; // for(int i=1;i<=cnt;i++)cout<<tp[i]<<endl;; for(int i=1;i<=500;i++){ int e=1,pm=i; for(int j=1;j<=8;j++){ while(pm%pr[j]==0)e*=pr[j],pm/=pr[j]; } if(pm==1){ for(int j=1;j<=cnt;j++){ if(tp[j]%e==0)c_n[j]+=Dt[i]; } } else{ for(int j=1;j<=cnt;j++){ if((tp[j]%e==0)&&(Dt[i]>=0))c_c[j]+=Dt[i]; } } } int ans=0; for(int i=1;i<=cnt;i++){ ans=max(ans,c_n[i]+c_c[i]); } cout<<ans<<endl; }


测评信息: