Ciao a tutti, stavo cercando di risolvere Ping Pong ma non riesco a prendere piu’ di 20.
Questo e’ il codice:
#include <bits/stdc++.h>
using namespace std;
void IO(){
ios::sync_with_stdio(0); cin.tie(0);
}
int T, a, b, partite;
bool nonValido(){
if(a < 33) return 1;
//massimo punti b
if(b > 30 + (partite - 3) * 11){
return 1;
}
//minimo punti b
if(b < (partite - 3) * 11) return 1;
if(a > 53) return 1;
return 0;
}
int main(){
IO();
cin >> T;
for(int t = 0; t < T; ++t){
cin >> a >> b;
partite = ceil(a / 11.f);
if(nonValido()){
cout << "-1 -1\n\n";
continue;
}
int perse = partite - 3;
if(perse == 2){
int r1 = 0, r2 = 0;
if((a - 33) % 2 == 0){
r1 = (a - 33) / 2;
r2 = r1;
}
else{
r1 = (a - 33) / 2 + 1;
r2 = r1 - 1;
}
cout << r1 << " " << 11 << '\n';
cout << r2 << " " << 11 << '\n';
}
else if(perse == 1){
cout << a - 33 << " " << 11 << '\n';
}
b = b - (partite - 3) * 11;
int r1 = 0, r2 = 0, r3 = 0;
if(b <= 10) {
r1 = b;
}
else if(b <= 20){
r1 = b - 10;
r2 = b - r1;
}
else if(b <= 30){
r1 = 10;
r2 = 10;
r3 = b - 20;
}
cout << 11 << " " << r1 << "\n";
cout << 11 << " " << r2 << "\n";
cout << 11 << " " << r3 << "\n\n";
}
return 0;
}