Buscando el código y análisis de esta pregunta c
#include?lt;iostreamgt;
int?main()
{
const?size_t?volume(20); ?//Capacidad máxima de la taza de agua;
size_t?cup[4][2]?=?{0};?//¿Taza unidimensional[1] a ?cup[3]? representa tres tazas de agua,? Dos números bidimensionales representan el volumen de agua actual y la capacidad restante;
size_t?count(0);?//Número de agua vertida;
std ::cin?gt; gt;?copa[1][0]?gt;gt;?copa[2][0]?gt;gt;?copa[3][0]?gt;gt;?cuenta; ?//Ingrese el estado inicial de la taza de agua y el número de vertidos;
//Calcule la capacidad restante de tres tazas de agua;
cup[1][1]?= ?volumen?-?taza[1][0 ];
taza[2][1]?=?volumen?-?taza[2][0];
taza [3][1]?=?volume? -?cup[3][0];
size_t?t1(0);?//Número de vertido;
size_t? t2(0);?//Se vierte agua número;
while(count--?=?0)
{
std::cin? gt;gt;?t1?gt; gt;?t2;?//t1 verter en t2;
if(cup[t1][0]?==?0?||?cup[t2] ][0]?==?volume )?//Si la taza t1 no tiene agua o la taza t2 está llena, omita
continuar
if(cup[t2] [1]?gt;=? cup[t1][0])?//Si la capacidad restante de t2 es mayor o igual a la cantidad de agua en t1;
{
taza[t2][0]? =?taza[ t1][0];?//t2 el volumen de agua aumenta;
taza[t2][1]?-=?taza[t1 ][0];?//t2 la capacidad restante disminuye;
taza[t1][0]?=?0;?//t1 se ha derramado;
taza[ t1][1]?=?volume;?//La capacidad restante de t1 es Máxima;
}
else?//Si la capacidad restante de t2 es menor que la cantidad de agua en t1;
{
cup[t1 ][0]?-=?cup[t2][1];?//t1 solo vierte la capacidad restante de t2;
taza[t1][1]? =?taza[t2] [1];?//t1 aumenta la capacidad correspondiente;
taza[t2][0 ]?=?volumen;?//t2 está lleno;
taza[t2 ][1]?=?0;?//t2 no tiene capacidad restante;
}
}
std::cout?lt;lt; ?cup[1][0]?lt;lt;?'?'?lt;lt;?cup[2] [0]?lt;lt;?'?'?lt;lt;?cup[3][ 0]?lt;lt;?std::endl;?//Salga el volumen de agua final de 3 tazas de agua;
retorno?0;
}