luogu_1414 又是毕业季II

#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
int n,k,a[10010],t[1000010],dp[10010],maxn,cnt;

int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        int x;
        scanf("%d",&x);
        t[x]++;
        maxn=max(maxn,x);
    }
    for(int i=1;i<=maxn;i++){
        cnt=0;
        for(int j=1;i*j<=maxn;j++)cnt+=t[i*j];
        for(int j=1;j<=cnt;j++)a[j]=max(a[j],i);
    }
    for(int i=1;i<=n;i++)printf("%d
",a[i]);
    return 0;
}

  

原文地址:https://www.cnblogs.com/codetogether/p/7635224.html