v 0. Pasted by slipstak2 as cpp at 2011-01-17 21:12:33 MSK and set expiration to never.

Paste will expire never.

  1. // Меньшиков. Тренировка 15.
  2. // 15A. Игра с калькулятором [calcgame]
  3. // ibelyaev: 14Jan2011
  4.  
  5. #include <iostream>
  6. #include <cstdio>
  7. #include <vector>
  8.  
  9. using namespace std;
  10.  
  11. const int MAX_VALUE = 1e9;
  12. int k;
  13. vector<bool> mem(1000);
  14. int resD = MAX_VALUE, resL = MAX_VALUE;
  15. void input()
  16. {
  17.     cin>>k;
  18. }
  19. void solve()
  20. {
  21.     int prev,cur;
  22.     for (int d = 1; d <= 9; d++) {
  23.         fill(mem.begin(), mem.end(), 0);
  24.  
  25.         int prev = d % k;
  26.  
  27.         if (prev == 0) {
  28.             resD = d; resL = 1;
  29.             return;
  30.         }
  31.         mem[prev] = true;
  32.         for (int len = 2; len <= k + 1; len++) {
  33.             cur = (prev * 10 + d) % k;
  34.             if (cur == 0) {
  35.                 if (len < resL) {
  36.                     resL = len;
  37.                     resD = d;
  38.                 }
  39.             }
  40.             prev = cur;
  41.             mem[cur] = true;
  42.         }
  43.     }
  44. }
  45. void output() {
  46.     if (resD == MAX_VALUE)
  47.         cout<<"Impossible";
  48.     else
  49.         cout<<resD<<' '<<resL;
  50. }
  51. int main()
  52. {
  53.     freopen("input.txt","r",stdin);
  54.     freopen("output.txt","w",stdout);
  55.  
  56.     input();
  57.     solve();
  58.     output();
  59.    
  60.     return 0;
  61. }


Editing is locked.