結果

問題 No.1657 Sum is Prime (Easy Version)
ユーザー LayCurseLayCurse
提出日時 2021-08-02 22:47:53
言語 C++17
(gcc 12.3.0 + boost 1.83.0)
結果
WA  
実行時間 -
コード長 3,303 bytes
コンパイル時間 2,612 ms
コンパイル使用メモリ 219,008 KB
実行使用メモリ 18,900 KB
最終ジャッジ日時 2024-05-01 01:08:09
合計ジャッジ時間 4,646 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 41 ms
18,784 KB
testcase_01 WA -
testcase_02 AC 44 ms
18,716 KB
testcase_03 AC 40 ms
18,820 KB
testcase_04 AC 46 ms
18,804 KB
testcase_05 AC 34 ms
18,808 KB
testcase_06 AC 42 ms
18,816 KB
testcase_07 AC 44 ms
18,832 KB
testcase_08 AC 46 ms
18,800 KB
testcase_09 AC 40 ms
18,900 KB
testcase_10 AC 43 ms
18,788 KB
testcase_11 WA -
testcase_12 AC 39 ms
18,900 KB
testcase_13 AC 38 ms
18,832 KB
testcase_14 AC 45 ms
18,652 KB
testcase_15 AC 38 ms
18,796 KB
testcase_16 AC 38 ms
18,656 KB
testcase_17 AC 36 ms
18,800 KB
testcase_18 AC 36 ms
18,804 KB
testcase_19 AC 37 ms
18,828 KB
testcase_20 AC 35 ms
18,876 KB
testcase_21 AC 35 ms
18,872 KB
testcase_22 AC 41 ms
18,840 KB
testcase_23 WA -
権限があれば一括ダウンロードができます

ソースコード

diff #

#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("inline")
#include<bits/stdc++.h>
using namespace std;
struct MY_WRITER{
  char buf[1048576];
  int s;
  int e;
  MY_WRITER(){
    s = 0;
    e = 1048576;
  }
  ~MY_WRITER(){
    if(s){
      fwrite_unlocked(buf, 1, s, stdout);
    }
  }
}
;
MY_WRITER MY_WRITER_VAR;
void my_putchar_unlocked(int a){
  if(MY_WRITER_VAR.s == MY_WRITER_VAR.e){
    fwrite_unlocked(MY_WRITER_VAR.buf, 1, MY_WRITER_VAR.s, stdout);
    MY_WRITER_VAR.s = 0;
  }
  MY_WRITER_VAR.buf[MY_WRITER_VAR.s++] = a;
}
inline void wt_L(char a){
  my_putchar_unlocked(a);
}
inline void wt_L(long long x){
  int s=0;
  int m=0;
  char f[20];
  if(x<0){
    m=1;
    x=-x;
  }
  while(x){
    f[s++]=x%10;
    x/=10;
  }
  if(!s){
    f[s++]=0;
  }
  if(m){
    my_putchar_unlocked('-');
  }
  while(s--){
    my_putchar_unlocked(f[s]+'0');
  }
}
long long llReader(long long mn, long long mx, char nx){
  int i;
  int fg = 0;
  int m = 1;
  long long res = 0;
  double tmp = 0;
  for(;;){
    i = getchar();
    if(fg==0 && i=='-'){
      fg++;
      m = -1;
    }
    else if('0' <= i  &&  i <= '9'){
      fg++;
      res = 10 * res + i - '0';
      tmp = 10 * tmp + i - '0';
      assert(tmp < 1e20);
    }
    else{
      break;
    }
  }
  assert(tmp / 2 <= res);
  assert((m==1 && fg >= 1) || (m==-1 && fg >= 2));
  assert(mn <= m * res  &&  m * res <= mx);
  assert(i == nx);
  return m * res;
}
vector<long long> ppp(2000000+1);
long long solve1(long long L, long long R){
  int i;
  long long res = 0;
  for(i=0;i<2000000+1;i++){
    if(L<=i && i<R && ppp[i]){
      res++;
    }
  }
  for(i=0;i<2000000+1;i++){
    if(2*L+1<=i && i<=2*R-1 && ppp[i]){
      res++;
    }
  }
  return res;
}
int main(){
  long long L;
  long long R;
  long long res;
  L = llReader(1, 1000000, ' ');
  R = llReader(L, 1000000, '\n');
  assert(getchar() == EOF);
  int i;
  int j;
  for(i=2;i<2000000+1;i++){
    ppp[i] = 1;
  }
  for(i=2;i<2000000+1;i++){
    if(ppp[i]){
      for(j=2*i;j<2000000+1;j+=i){
        ppp[j] = 0;
      }
    }
  }
  res = solve1(L,R);
  wt_L(res);
  wt_L('\n');
  return 0;
}
// cLay version 20210717-1 [beta]

// --- original code ---
// ll llReader(ll mn, ll mx, char nx){
//   int i, fg = 0, m = 1;
//   ll res = 0; double tmp = 0;
// 
//   for(;;){
//     i = getchar();
//     if(fg==0 && i=='-'){
//       fg++;
//       m = -1;
//     } else if('0' <= i <= '9'){
//       fg++;
//       res = 10 * res + i - '0';
//       tmp = 10 * tmp + i - '0';
//       assert(tmp < 1e20);
//     } else {
//       break;
//     }
//   }
//   assert(tmp / 2 <= res);
//   assert((m==1 && fg >= 1) || (m==-1 && fg >= 2));
//   assert(mn <= m * res <= mx);
//   assert(i == nx);
//   return m * res;
// }
// 
// 
// vector<ll> ppp(2d6+1);
// ll solve1(ll L, ll R){
//   int i;
//   ll res = 0;
//   for(i=0;i<2d6+1;i++) if(L<=i<R && ppp[i]) res++;
//   for(i=0;i<2d6+1;i++) if(2*L+1<=i<=2*R-1 && ppp[i]) res++;
//   return res;
// }
// 
// {
//   ll L, R, res;
//   L = llReader(1, 1d6, ' ');
//   R = llReader(L, 1d6, '\n');
//   assert(getchar() == EOF);
//   
//   int i, j;
//   for(i=2;i<2d6+1;i++) ppp[i] = 1;
//   for(i=2;i<2d6+1;i++) if(ppp[i]) for(j=2*i;j<2d6+1;j+=i) ppp[j] = 0;
// 
//   res = solve1(L,R);
//   wt(res);
// }
0