Time Limit: 1000MS | Memory Limit: 262144KB | 64bit IO Format: %I64d & %I64u |
Description
Friends are going to play console. They have two joysticks and only one charger for them. Initially first joystick is charged ata1 percent and second one is charged at a2 percent. You can connect charger to a joystick only at the beginning of each minute. In one minute joystick either discharges by 2 percent (if not connected to a charger) or charges by 1 percent (if connected to a charger).
Game continues while both joysticks have a positive charge. Hence, if at the beginning of minute some joystick is charged by 1 percent, it has to be connected to a charger, otherwise the game stops. If some joystick completely discharges (its charge turns to 0), the game also stops.
Determine the maximum number of minutes that game can last. It is prohibited to pause the game, i. e. at each moment both joysticks should be enabled. It is allowed for joystick to be charged by more than 100 percent.
Input
The first line of the input contains two positive integers a1 and a2 (1 ≤ a1, a2 ≤ 100), the initial charge level of first and second joystick respectively.
Output
Output the only integer, the maximum number of minutes that the game can last. Game continues until some joystick is discharged.
Sample Input
3 5
6
4 4
5
//题意:
给你两个游戏机的初始电量n和m,只有一个充电器,所以每次只能给一个游戏机充电,如果游戏机不连充电器,每分钟耗电2格,否则,每分钟充电1格。问两个人最长能玩多长时间。
#include<stdio.h> #include<string.h> #include<algorithm> #include<algorithm> #define INF 0x3f3f3f3f #define IN __int64 #define ull unsigned long long #define ll long long #define N 1010 #define M 1000000007 using namespace std; int main() { int n,m; int k; while(scanf("%d%d",&n,&m)!=EOF) { if(n==1&&m==1) { printf("0\n"); continue; } k=0; while(n>0&&m>0) { if(n>m) { n-=2;m++; } else { n++,m-=2; } k++; } printf("%d\n",k); } return 0; }