def dsf(a,b,ca,cb,cr,atemp,btemp):
if a==cr or b==cr:
print 'Success'
return 0
if a==0:
print 'fill '+atemp
a = ca
if b==cb:
print 'Empty '+btemp
b = 0
print 'Pour '+atemp+' '+btemp
temp = cb-b
if a<temp:
b = b+a
a = 0
dsf(a,b,ca,cb,cr,atemp,btemp)
else:
a = a-temp
b = cb
dsf(a,b,ca,cb,cr,atemp,btemp)
a = raw_input()
while a:
temp = a.split(' ')
print temp
l = len(temp)
if l!=3:
print 'No success'
ca = int(temp[0])
cb = int(temp[1])
cr = int(temp[2])
a = 0
b = 0
atemp = 'A'
btemp = 'B'
if ca<cb:
dsf(a,b,cb,ca,cr,btemp,atemp)
else:
dsf(a,b,ca,cb,cr,atemp,btemp)
a = raw_input()
C++代码:
#include <iostream>
using namespace std;
int ca, cb, n;
int main()
{
int curra, currb;
while ( cin >> ca >> cb >> n )
{
curra = currb = 0;
while ( currb != n )
{
if ( 0 == curra )
{
cout << "fill A" << endl;
curra = ca;
}
if ( curra + currb <= cb )
{
cout << "pour A B" << endl;
currb += curra;
curra = 0;
}
else
{
cout << "pour A B\nempty B\npour A B" << endl;
currb = (curra + currb) % cb;
curra = 0;
}
}
cout << "success" << endl;
}
return 0;
}