2024 day 7
This commit is contained in:
parent
06b7ac26cf
commit
a311e1d88a
46
2024/7/main-1.cpp
Normal file
46
2024/7/main-1.cpp
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
#include <bits/stdc++.h>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
typedef unsigned long long ull;
|
||||||
|
|
||||||
|
inline ull testn(vector<int> &ns, ull b) {
|
||||||
|
ull v = ns[0];
|
||||||
|
for (int i = 1; i < ns.size(); i++) {
|
||||||
|
if (b & 1) {
|
||||||
|
v += ns[i];
|
||||||
|
} else {
|
||||||
|
v *= ns[i];
|
||||||
|
}
|
||||||
|
b >>= 1;
|
||||||
|
}
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
ios::sync_with_stdio(0);
|
||||||
|
cin.tie(0);
|
||||||
|
|
||||||
|
ull sum = 0;
|
||||||
|
string line;
|
||||||
|
while (getline(cin, line) && !line.empty()) {
|
||||||
|
istringstream l(line);
|
||||||
|
ull n;
|
||||||
|
int a;
|
||||||
|
vector<int> ns;
|
||||||
|
l >> n;
|
||||||
|
l.ignore();
|
||||||
|
while (l >> a) {
|
||||||
|
ns.push_back(a);
|
||||||
|
}
|
||||||
|
|
||||||
|
ull btot = 1 << (ns.size() - 1);
|
||||||
|
for (ull b = 0; b <= btot; b++) {
|
||||||
|
if (testn(ns, b) == n) {
|
||||||
|
sum += n;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
cout << sum << '\n';
|
||||||
|
}
|
52
2024/7/main-2.cpp
Normal file
52
2024/7/main-2.cpp
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
#include <bits/stdc++.h>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
typedef unsigned long long ull;
|
||||||
|
|
||||||
|
inline ull testn(vector<int> &ns, ull b) {
|
||||||
|
ull v = ns[0];
|
||||||
|
for (int i = 1; i < ns.size(); i++) {
|
||||||
|
switch (b % 3) {
|
||||||
|
case 0:
|
||||||
|
v += ns[i];
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
v *= ns[i];
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
v *= pow(10, (int)log10(ns[i]) + 1);
|
||||||
|
v += ns[i];
|
||||||
|
}
|
||||||
|
b /= 3;
|
||||||
|
}
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
ios::sync_with_stdio(0);
|
||||||
|
cin.tie(0);
|
||||||
|
|
||||||
|
ull sum = 0;
|
||||||
|
string line;
|
||||||
|
while (getline(cin, line) && !line.empty()) {
|
||||||
|
istringstream l(line);
|
||||||
|
ull n;
|
||||||
|
int a;
|
||||||
|
vector<int> ns;
|
||||||
|
l >> n;
|
||||||
|
l.ignore();
|
||||||
|
while (l >> a) {
|
||||||
|
ns.push_back(a);
|
||||||
|
}
|
||||||
|
|
||||||
|
ull btot = pow(3, (ns.size() - 1));
|
||||||
|
for (ull b = 0; b <= btot; b++) {
|
||||||
|
if (testn(ns, b) == n) {
|
||||||
|
sum += n;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
cout << sum << '\n';
|
||||||
|
}
|
Loading…
Reference in a new issue