1. Бирени прости числа
Броят на цифрите на търсените бирени прости числа е по-малък от
6.
primes();
map<string, int> mapp[10];
makemap()
for (int i = 0; i < nump; i++)
{
ostringstream
os;
os <<
p[i];
string s =
os.str(), ind = "0000000000";
for (int j =
0; j < s.length(); j++) ind[s[j] - '0'] = '1';
mapp[s.length()][ind]++;
}
cout << mapp[n][ind] << endl;
2. Израз нула
void varianti(vector<int> v, unsigned i){
if (i >= v.size()){
check(v);
return;
}
v[i]= abs(v[i]);
varianti(v,i+1);
v[i]= -abs(v[i]);
varianti(v,i+1);
}
3. Коалиции
всички подмножества, 210
сортиране
4. Хипотеза на Голдбах
Ератостен
while(cin >> k)
{
num = 0;
for (int i =
2; i <= k/2; i++)
if (primes[i] && primes[k - i]) num++;
cout <<
num << " ";
}
5. Анаграми
#include <iostream>
#include <sstream>
#include <string>
#include <unordered_set>
#include <algorithm>
using namespace std;
int main() {
string line;
while (getline(cin, line)) {
istringstream
iss(line);
unordered_set<string> s;
string next;
while (iss
>> next) {
sort(next.begin(), next.end());
s.insert(next);
}
cout <<
s.size() << endl;
}
return 0;
}
6. Автомат
7. Политическа сила
идея за решение
8. Прости пермутации
ll s2ll(string ss)
{
ll nn;
istringstream is(ss);
is >> nn;
return nn;
}
bool prime(string ss)
{
ll k = s2ll(ss);
ll kk = sqrt(k);
for (ll i = 0; i <= nump &&
i < kk; i++)
if (k%p[i] ==
0) return false;
return true;
}
string int2s(ll nn)
{
ostringstream os;
os << nn;
return os.str();
}
ll k, num;
int main0()
{
while (cin >> k)
{
// cout << k
<< endl;
string s =
int2s(k);
sort(s.begin(), s.end());
num = 0;
do
{
if (prime(s))
{ num++; //cout << s << " ";
}
}
while(next_permutation(s.begin(), s.end()));
cout <<
num << endl;
}
return 0;
}
9. N-то число
10. Бирено парти
11. Разбивания
set<string> sett;
unsigned mp[MAXN + 1];
unsigned nn;
void print(unsigned length)
{
ostringstream os;
unsigned i;
os << nn << "=";
for (i = 1; i <
length; i++) os << mp[i] << "+";
// printf("%u+", mp[i]);
os <<
mp[length] << endl;
// printf("%u\n", mp[length]);
sett.insert(os.str());
}
void devNum(unsigned n, unsigned pos)
{
if (0 == n)
print(pos-1);
else
{
unsigned
k;
for (k =
n; k >= 1; k--)
{
mp[pos] = k;
if (mp[pos] <= mp[pos-1]) devNum(n-k, pos+1);
}
}
}
unsigned n;
int main()
{
unsigned k;
while(cin >> nn >> k)
{
sett.clear();
n = nn;
mp[0] = n+1;
devNum(n, 1);
cout <<
sett.size() << " ";
unsigned i =
0;
for
(set<string>::iterator it = sett.begin(); it !=
sett.end(); ++ it)
{
i++;
if (i == k) cout << *it;
}
}
return 0;
}
1 1 3 3 10 10 30 3 30 5604 50 1 50 25 50 10000 50 200000 50 204226 |
1 1=1 3 3=3 42 10=3+2+2+1+1+1 5604 30=10+10+1+1+1+1+1+1+1+1+1+1 5604 30=9+9+9+3 204226 50=1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+ 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1 204226 50=10+10+10+10+4+3+2+1 204226 50=10+7+7+7+7+5+4+2+1 204226 50=9+8+8+8+8+3+2+2+2 204226 50=9+9+9+9+9+5 |
12. Пъзел
Място |
Студент |
Hackerrank |
зад. |
време |
1 |
Nicolay Giraldo |
@f107526 | 5 |
626 |
- |
Даниел Бояджиев |
@daniel_boyadhiev | - |
- |
6 |
Васил Василев | @f105031_w | 4 |
714 |
5 |
Цветалин Христов | @ts_hristov02 | 4 |
667 |
3 |
Филип Спасов | @LegendAri | 4 |
405 |
7 |
Даниел Денисов | @danikmass121 | 4 |
752 |
9 |
Виктор Мореев | @moreevviktor | 3 |
548 |
10 |
Иво Ивайлов Живков |
@ivo_i321 |
3 |
614 |
4 |
Виктор Андреев |
@Viksan |
4 |
609 |
2 |
Ангел Пенчев |
@batch123 |
5 |
738 |
12 |
Димитър Димитров |
@dimitur_dimitrow |
- |
- |
8 |
@mirella |
3 |
460 |
|
11 |
@georgi4511 |
2 |
395 |
|
12 |
@danielpaskalev |
- |
- |