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 件のコメント :
コメントを投稿