【CodeForces 1366A --- Shovels and Swords】思維

【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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章