#include #include using namespace std; #define ASSERT_RANGE(n,lo,hi) assert((lo) <= (n) && (n) <= (hi)); int main(void) { int c, n1, n2, n3, n4; bool flag = false; while(cin >> c) { if(c == 0) break; ASSERT_RANGE(c, 1, 5000); cin >> n1 >> n2 >> n3 >> n4; ASSERT_RANGE(n1, 0, 20); ASSERT_RANGE(n2, 0, 20); ASSERT_RANGE(n3, 0, 20); ASSERT_RANGE(n4, 0, 20); int m = 80, m1, m2, m3, m4; for(int i1 = 0; i1 <= n1; i1++) { for(int i2 = 0; i2 <= n2; i2++) { for(int i3 = 0; i3 <= n3; i3++) { for(int i4 = 0; i4 <= n4; i4++) { int w = 10 * i1 + 50 * i2 + 100 * i3 + 500 * i4; if(w < c) continue; w -= c; int k = -(i1 + i2 + i3 + i4); k += w / 500; k += (w % 500) / 100; k += (w % 100) / 50; k += (w % 50) / 10; if(k < m) { m = k; m1 = i1; m2 = i2; m3 = i3; m4 = i4; } } } } } if(flag) cout << endl; flag = true; if(m1 > 0) cout << "10 " << m1 << endl; if(m2 > 0) cout << "50 " << m2 << endl; if(m3 > 0) cout << "100 " << m3 << endl; if(m4 > 0) cout << "500 " << m4 << endl; } cin >> ws; assert(cin.eof()); return 0; }