题目链接:https://codeforces.com/group/5yyKg9gx7m/contest/270506/problem/D
思路
看到只有100次果断模拟就完事了
代码
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<string>
#include<map>
#include<cstring>
#include<climits>
#include<vector>
#include<queue>
#include<stack>
#define lowbit(i) ((i)&(-(i)))
#define ll long long
using namespace std;
int c[4], m[4];//记录桶的容量和现在的奶量
int main()
{
scanf("%d%d%d%d%d%d", &c[0], &m[0], &c[1], &m[1], &c[2], &m[2]);
for (int i = 0; i < 100; i++)
{
int x = i% 3;//x为倒出的桶
int y = (i+1) % 3;//y为倒入的桶
if (m[x] + m[y] <= c[y])//如果y桶可以完全吃下x和y的奶量就全部倒入y中
{
m[y] = m[x] + m[y];
m[x] = 0;
}
else//如果不能将y灌满就ok
{
m[x] = m[x] + m[y] - c[y];
m[y] = c[y];
}
}
for (int i = 0; i < 3; i++)
printf("%d\n", m[i]);
return 0;
}