#include<bits/stdc++.h>
using namespace std;
using ll = long long int;
using vi = vector<int>;
using vll = vector<long long int>;
using vii = vector<vi>;
using pii = pair<int, int>;
#define REP(i,n) for(int (i)=0;(i)<(n);(i)++)
#define FOR(i, a, b) for(int (i) = a; (i) < (b);(i)++)
#define MAX(a, b) ((a > b) ? a : b)
#define MIN(a, b) ((a > b) ? b : a)
int gcd(int a,int b){return b?gcd(b,a%b):a;}
int dx[4]={1,0,-1,0};
int dy[4]={0,1,0,-1};
const int QUA = 1e9 + 7;
int main(){
ll n, m;
scanf("%lld%lld", &n, &m);
ll ans;
if(2 * n >= m){
ans = m / 2;
}
else{
ans = n + (m - 2 * n) / 4;
}
printf("%lld\n", ans);
return 0;
}
./Main.cpp: In function ‘int main()’:
./Main.cpp:23:28: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%lld%lld", &n, &m);
^