题目链接:
题目大意:
给出两种人的数目n和m,有两种组合方式,第一种2:1,第二种是1:2,问只用这两种组合方式得到最多的组合数。
题目分析:
枚举其中一种组合方式的数量,然后算出另一种组合方式的数量。
AC代码:
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
using namespace std;
int n,m;
const int MAX = 5*1e5;
int main ( )
{
while ( ~scanf ( "%d%d" , &n , &m ) )
{
int ans = 0;
for ( int i = 0 ; i <= MAX ; i++ )
{
if( 2*i > n ) break;
if ( i > m ) break;
int x = n -2*i;
int y = m - i;
ans = max ( ans , i+min(x,y/2));
}
printf ( "%d\n" , ans );
}
}