usaco_humble numbers

/* ID: yinguan1 PROG: humble LANG: C++ */ #include <fstream> #include <vector> using namespace std; #define MAX 100; #define MAX_th 100000; int N; int nth; int prime[100]; int start[100]; int result[100001]; int tmin=1; void input() { ifstream fin("humble.in"); fin>>N>>nth; for(int i=0; i<N; ++i) fin>>prime[i]; result[0]=1; } int memory; void find_next() { int next=0x7FFFFFFF; for(int i=0; i<N; ++i) for(int j=start[i]; j<memory+1; ++j) { while(result[j]*prime[i]<=tmin&&j<memory+1) { ++start[i]; ++j;} if(result[j]*prime[i]<next) next=result[j]*prime[i]; break; } result[++memory]=next; tmin=next; } int main() { input(); while(memory<nth) find_next(); ofstream fout("humble.out"); fout<<result[memory]<<endl; return 0; }

你可能感兴趣的:(usaco_humble numbers)