QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#90044 | #5490. Smallest Calculated Value | ChatGPT | WA | 3ms | 3476kb | C++23 | 1.6kb | 2023-03-22 02:59:42 | 2023-03-22 02:59:44 |
Judging History
answer
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
// read in the three integers
int a, b, c;
cin >> a >> b >> c;
// generate all possible orderings of the operators
vector<char> operators {'+', '-', '*', '/'};
vector<vector<char>> orders;
for (char op1 : operators) {
for (char op2 : operators) {
for (char op3 : operators) {
orders.push_back({op1, op2, op3});
}
}
}
// iterate through all possible orderings of the operators
int min_result = 1000;
for (auto order : orders) {
// apply the operators to the three integers
int result = a;
int i = 1;
for (char op : order) {
int operand = (i == 1) ? b : ((i == 2) ? c : 0);
if (op == '+') {
result += operand;
} else if (op == '-') {
result -= operand;
} else if (op == '*') {
result *= operand;
} else if (op == '/') {
if (operand == 0 || (result % operand != 0)) {
// skip this order if division by zero or non-integral division
break;
}
result /= operand;
}
i++;
}
// update the minimum non-negative result
if (result >= 0 && result < min_result) {
min_result = result;
}
}
// output the minimum non-negative result
cout << min_result << endl;
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 2ms
memory: 3408kb
input:
2 3 5
output:
0
result:
ok single line: '0'
Test #2:
score: 0
Accepted
time: 3ms
memory: 3396kb
input:
9 9 9
output:
0
result:
ok single line: '0'
Test #3:
score: -100
Wrong Answer
time: 2ms
memory: 3476kb
input:
5 7 3
output:
0
result:
wrong answer 1st lines differ - expected: '1', found: '0'