Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
28471 LYLAKIOIAKIOI 【BJ】T3 C++ 通过 100 521 MS 300 KB 821 2024-04-14 18:55:07

Tests(10/10):


#include<bits/stdc++.h> using namespace std; int limit[]={0,8,5,3,3,2,2,2,2}; int kind[]={0,2,3,5,7,11,13,17,19}; int a[11]; int n; int otp[550][10]; int p[550]; int v[550]; int ans=0; int chk(){ int cnt=0; for(int i=1;i<=500;i++) p[i]=0; for(int i=1;i<=n;i++){ bool fl=1; for(int j=1;j<=8;j++){ if(a[j]<otp[i][j]) fl=0; }if(fl){ p[otp[i][9]]+=v[i]; } }for(int i=1;i<=500;i++){ if(p[i]>0||i==1) cnt+=p[i]; }return cnt; }void dfs(int id){ if(id>=9){ ans=max(chk(),ans); return ; }for(int i=0;i<=limit[id];i++){ a[id]=i; dfs(id+1); } } int main(){ cin>>n; for(int i=1;i<=n;i++){ int x;cin>>x>>v[i]; for(int j=1;j<=8;j++){ while(x%kind[j]==0) otp[i][j]++,x/=kind[j]; }otp[i][9]=x; //cout<<x; }dfs(1); cout<<ans<<endl; return 0; }


测评信息: