已知:1,2元的硬币共n枚,能表示的钱数为[n,2n]。
所以,每次去掉5元,如果剩下的钱能用1,2元表示,结果就+1。
#include <iostream> #include <cstdio> using namespace std; const int MAXN=1000000; int main(){ int t,n,m; scanf("%d",&t); while(t--){ scanf("%d %d",&n,&m); int left,right,money; int ans=0; for(int i=0;i<=n;i++){ left=(n-i); right=2*(n-i); money = m- i*5; if(money>=left && money<=right)ans++; } printf("%d ", ans); } }