Submission
Status:
[PPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: krittaphot
Problemset: anna
Language: cpp
Time: 0.002 second
Submitted On: 2026-03-06 18:18:09
#include <bits/stdc++.h>
using namespace std;
vector<long long> valid(vector<long long> &v){
vector<long long> res;
long long plus = v[0];
long long minus = v[1];
long long multiply = v[2];
long long divide = v[3];
long long mod = v[4];
long long a = (plus+minus)/2;
long long b = plus - a;
if(a <= b || b <= 0) return res;
if((plus+minus) % 2 != 0) return res;
if(a*b == multiply && a/b == divide && a%b == mod){
res.push_back(a);
res.push_back(b);
return res;
}
else{
return res;
}
}
void solve(vector<long long> &val,vector<long long> &use,vector<long long> &ans,vector<long long> &found){
if(ans.size() == 5){
vector<long long> res = valid(ans);
if(res.size() != 0){
if(found.empty()){
found = res;
} else if(found != res){
found = {0, 0};
}
}
}
else{
for(long long i = 0;i<5;i++){
if(!use[i]){
ans.push_back(val[i]);
use[i] = true;
solve(val,use,ans,found);
ans.pop_back();
use[i] = false;
}
}
}
}
int main()
{
long long n;
cin >> n;
while(n--){
vector<long long> val(5);
for(long long i = 0;i<5;i++){
cin >> val[i];
}
vector<long long> use(5,false);
vector<long long> ans;
vector<long long> found;
solve(val,use,ans,found);
if(found.size() == 0){
cout << "0 0\n";
}
else{
for(auto x : found){
cout << x << " ";
}
cout << "\n";
}
}
}