class BootsExchange { public: int leastAmount(vector <int> l, vector <int> r) { for(int i=0; i<l.size(); ++i){ for(int j=0; j<r.size(); ++j){ if(l[i] == r[j]){ l.erase( l.begin() + i ); r.erase( r.begin() + j ); --i; break; } } } return r.size(); } };500
class PartSorting { public: vector <int> process(vector <int> d, int s) { for(int i=0; i<d.size() && s; ++i){ int mx = -1, idx = -1; for(int j=i+1; j<d.size() && j<s+i+1; ++j){ if(mx < d[j]){ mx = d[j]; idx = j; } } if(d[i] > d[idx])continue; if(mx == -1)break; d.erase( d.begin() + idx ); d.insert( d.begin() + i, mx ); s -= (idx - i); } return d; } };1000
約数を求めるコードを既に持ってた。
const int N = 5200000 + 1; int c[N]; void solve(void) { for(int i=1; i<N; ++i)c[i] = 1; for(int j=2; j<N; ++j){ for(int i=j; i<N; i+=j)c[i]++; } return ; } class PreprimeNumbers { public: int nthNumber(int n) { int r = 0; solve(); for(int i=0; i<N; ++i){ if(c[i] == 4)--n; if(n == 0){ r = i; break; } } return r; } };
0 件のコメント :
コメントを投稿