QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#90043 | #5490. Smallest Calculated Value | ChatGPT | WA | 2ms | 3476kb | C++23 | 1.6kb | 2023-03-22 02:58:32 | 2023-03-22 02:58:35 |
Judging History
answer
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
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 operand_index = 1;
for (char op : order) {
int operand = (operand_index == 1) ? b : c;
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;
}
operand_index++;
}
// 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;
}
详细
Test #1:
score: 100
Accepted
time: 2ms
memory: 3400kb
input:
2 3 5
output:
0
result:
ok single line: '0'
Test #2:
score: 0
Accepted
time: 2ms
memory: 3324kb
input:
9 9 9
output:
0
result:
ok single line: '0'
Test #3:
score: 0
Accepted
time: 2ms
memory: 3476kb
input:
5 7 3
output:
1
result:
ok single line: '1'
Test #4:
score: -100
Wrong Answer
time: 0ms
memory: 3412kb
input:
406 21 18
output:
349
result:
wrong answer 1st lines differ - expected: '367', found: '349'