結果

問題 No.1152 10億ゲーム
ユーザー LayCurseLayCurse
提出日時 2020-08-07 22:44:29
言語 C++17
(gcc 12.3.0 + boost 1.83.0)
結果
TLE  
実行時間 -
コード長 3,132 bytes
コンパイル時間 2,500 ms
コンパイル使用メモリ 209,736 KB
実行使用メモリ 44,516 KB
平均クエリ数 20.98
最終ジャッジ日時 2023-09-24 04:48:52
合計ジャッジ時間 11,355 ms
ジャッジサーバーID
(参考情報)
judge15 / judge12
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 71 ms
24,084 KB
testcase_01 AC 65 ms
24,228 KB
testcase_02 AC 67 ms
23,616 KB
testcase_03 AC 67 ms
23,964 KB
testcase_04 AC 74 ms
23,964 KB
testcase_05 AC 69 ms
23,712 KB
testcase_06 AC 67 ms
24,072 KB
testcase_07 AC 68 ms
23,604 KB
testcase_08 AC 65 ms
23,592 KB
testcase_09 AC 65 ms
24,096 KB
testcase_10 AC 66 ms
23,484 KB
testcase_11 AC 68 ms
24,072 KB
testcase_12 AC 67 ms
24,072 KB
testcase_13 AC 67 ms
23,340 KB
testcase_14 AC 66 ms
23,328 KB
testcase_15 AC 67 ms
23,376 KB
testcase_16 AC 65 ms
24,252 KB
testcase_17 AC 67 ms
23,724 KB
testcase_18 AC 66 ms
24,252 KB
testcase_19 AC 67 ms
24,000 KB
testcase_20 AC 65 ms
24,000 KB
testcase_21 AC 65 ms
23,580 KB
testcase_22 AC 65 ms
24,240 KB
testcase_23 AC 66 ms
24,252 KB
testcase_24 AC 67 ms
23,724 KB
testcase_25 AC 67 ms
23,616 KB
testcase_26 AC 69 ms
23,592 KB
testcase_27 AC 67 ms
23,592 KB
testcase_28 AC 67 ms
24,204 KB
testcase_29 AC 67 ms
24,240 KB
testcase_30 AC 67 ms
23,988 KB
testcase_31 AC 67 ms
23,700 KB
testcase_32 AC 68 ms
24,096 KB
testcase_33 AC 68 ms
24,348 KB
testcase_34 AC 69 ms
24,228 KB
testcase_35 AC 70 ms
24,240 KB
testcase_36 AC 68 ms
24,240 KB
testcase_37 AC 68 ms
23,424 KB
testcase_38 AC 67 ms
23,436 KB
testcase_39 AC 69 ms
23,580 KB
testcase_40 AC 67 ms
23,460 KB
testcase_41 AC 67 ms
24,084 KB
testcase_42 AC 69 ms
23,892 KB
testcase_43 AC 69 ms
23,964 KB
testcase_44 TLE -
testcase_45 -- -
testcase_46 -- -
testcase_47 -- -
testcase_48 -- -
testcase_49 -- -
権限があれば一括ダウンロードができます

ソースコード

diff #

#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
template<class S, class T> inline S min_L(S a,T b){
  return a<=b?a:b;
}
template<class S, class T> inline S max_L(S a,T b){
  return a>=b?a:b;
}
int m2;
int m5;
int o2;
int o5;
int in2;
int in5;
void input(void){
  int x;
  scanf("%d",&x);
  in2 = in5 = 0;
  while(x%2==0){
    in2++;
    x/=2;
  }
  while(x%5==0){
    in5++;
    x/=5;
  }
}
void output(void){
  int cTE1_r3A, xr20shxY;
  int x = 1;
  for(cTE1_r3A=(0);cTE1_r3A<(m2);cTE1_r3A++){
    x *= 2;
  }
  for(xr20shxY=(0);xr20shxY<(m5);xr20shxY++){
    x *= 5;
  }
  printf("%d\n",x);
  fflush(stdout);
}
int main(){
  int mn;
  int mx;
  input();
  {
    auto KrdatlYV = (in2);
    auto ao_dF3pO = ( in5);
    m2 = KrdatlYV;
    m5 = ao_dF3pO;
  }
  input();
  {
    auto tU__gIr_ = (in2);
    auto a2conNHc = ( in5);
    o2 = tU__gIr_;
    o5 = a2conNHc;
  }
  for(;;){
    if( (m2+m5+o2+o5)%2 == 0 ){
      mn =min_L(m2, m5);
      if(m2==7 && m5==9){
        m2 = m5 = 9;
      }
      else if(mn < 7 && m2==mn){
        m2++;
      }
      else{
        m5++;
      }
      output();
      if(m2==o2 && m5==o5){
        return 0;
      }
      input();
      {
        auto YREPHmFM = (in2);
        auto jZyWAPpY = ( in5);
        o2 = YREPHmFM;
        o5 = jZyWAPpY;
      }
      if(m2==o2 && m5==o5){
        return 0;
      }
      continue;
    }
    mx =max_L(abs(m2-o2), abs(m5-o5));
    if(m2+mx==o2){
      m2++;
    }
    else if(m2-mx==o2){
      m2--;
    }
    else if(m5+mx==o5){
      m5++;
    }
    else{
      m5--;
    }
    output();
    if(m2==o2 && m5==o5){
      return 0;
    }
    input();
    {
      auto ZIeRIny5 = (in2);
      auto iMWUTgY_ = ( in5);
      o2 = ZIeRIny5;
      o5 = iMWUTgY_;
    }
    if(m2==o2 && m5==o5){
      return 0;
    }
    continue;
  }
  return 0;
}
// cLay varsion 20200509-1

// --- original code ---
// int m2, m5, o2, o5;
// 
// int in2, in5;
// void input(void){
//   int x;
//   scanf("%d",&x);
//   in2 = in5 = 0;
//   while(x%2==0) in2++, x/=2;
//   while(x%5==0) in5++, x/=5;
// }
// 
// void output(void){
//   int x = 1;
//   rep(m2) x *= 2;
//   rep(m5) x *= 5;
//   printf("%d\n",x);
//   fflush(stdout);
// }
// 
// 
// {
//   int mn, mx;
// 
//   input();
//   (m2, m5) = (in2, in5);
//   input();
//   (o2, o5) = (in2, in5);
// 
//   for(;;){
//     if( (m2+m5+o2+o5)%2 == 0 ){
//       mn = min(m2, m5);
//       if(m2==7 && m5==9){
//         m2 = m5 = 9;
//       } else if(mn < 7 && m2==mn){
//         m2++;
//       } else {
//         m5++;
//       }
//       output();
//       if(m2==o2 && m5==o5) return 0;
//       input();
//       (o2, o5) = (in2, in5);
//       if(m2==o2 && m5==o5) return 0;
//       continue;
//     }
// 
//     mx = max(abs(m2-o2), abs(m5-o5));
//     if(m2+mx==o2){
//       m2++;
//     } else if(m2-mx==o2){
//       m2--;
//     } else if(m5+mx==o5){
//       m5++;
//     } else {
//       m5--;
//     }
//     output();
//     if(m2==o2 && m5==o5) return 0;
//     input();
//     (o2, o5) = (in2, in5);
//     if(m2==o2 && m5==o5) return 0;
//     continue;
//   }
// }
0