【CodeForces 1366A --- Shovels and Swords】思維
題目來源:點擊進入【CodeForces 1366A — Shovels and Swords】
Description
Polycarp plays a well-known computer game (we won’t mention its name). In this game, he can craft tools of two types — shovels and swords. To craft a shovel, Polycarp spends two sticks and one diamond; to craft a sword, Polycarp spends two diamonds and one stick.
Each tool can be sold for exactly one emerald. How many emeralds can Polycarp earn, if he has a sticks and b diamonds?
Input
The first line contains one integer t (1≤t≤1000) — the number of test cases.
The only line of each test case contains two integers a and b (0≤a,b≤109) — the number of sticks and the number of diamonds, respectively.
Output
For each test case print one integer — the maximum number of emeralds Polycarp can earn.
Sample Input
4
4 4
1000000000 0
7 15
8 7
Sample Output
2
0
7
5
Note
In the first test case Polycarp can earn two emeralds as follows: craft one sword and one shovel.
In the second test case Polycarp does not have any diamonds, so he cannot craft anything.
AC代碼(C++):
#include <iostream>
#include <algorithm>
#define SIS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
#define endl '\n'
using namespace std;
typedef long long ll;
const int inf = 0x3f3f3f3f;
const ll INF = 0x3f3f3f3f3f3f3f3f;
const int MAXN = 1e5+5;
int main(){
SIS;
int t,x,y,ans=0;
cin >> t;
while(t--){
cin >> x >> y;
if(x<y) swap(x,y);
if(x/2>=y) ans=y;
else ans=(x+y)/3;
cout << ans << endl;
}
return 0;
}