結果

問題 No.1657 Sum is Prime (Easy Version)
ユーザー LayCurseLayCurse
提出日時 2021-08-01 20:21:43
言語 C++17
(gcc 12.3.0 + boost 1.83.0)
結果
WA  
実行時間 -
コード長 3,313 bytes
コンパイル時間 2,622 ms
コンパイル使用メモリ 219,756 KB
実行使用メモリ 159,552 KB
最終ジャッジ日時 2024-05-01 01:08:37
合計ジャッジ時間 21,996 ms
ジャッジサーバーID
(参考情報)
judge4 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 WA -
testcase_01 WA -
testcase_02 AC 741 ms
159,552 KB
testcase_03 AC 749 ms
159,452 KB
testcase_04 WA -
testcase_05 AC 739 ms
159,460 KB
testcase_06 AC 733 ms
159,276 KB
testcase_07 AC 729 ms
159,464 KB
testcase_08 AC 738 ms
159,272 KB
testcase_09 AC 730 ms
159,468 KB
testcase_10 AC 739 ms
159,496 KB
testcase_11 AC 729 ms
159,432 KB
testcase_12 AC 747 ms
159,444 KB
testcase_13 AC 730 ms
159,340 KB
testcase_14 AC 735 ms
159,508 KB
testcase_15 AC 736 ms
159,488 KB
testcase_16 AC 749 ms
159,476 KB
testcase_17 AC 740 ms
159,512 KB
testcase_18 AC 734 ms
159,476 KB
testcase_19 AC 739 ms
159,528 KB
testcase_20 AC 736 ms
159,440 KB
testcase_21 WA -
testcase_22 AC 729 ms
159,428 KB
testcase_23 AC 733 ms
159,524 KB
権限があれば一括ダウンロードができます

ソースコード

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(20000000+1);
long long solve1(long long L, long long R){
  int i;
  long long res = 0;
  for(i=0;i<20000000+1;i++){
    if(L<=i && i<=R && ppp[i]){
      res++;
    }
  }
  for(i=0;i<20000000+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, 10000000, ' ');
  R = llReader(L, 10000000, '\n');
  assert(getchar() == EOF);
  int i;
  int j;
  for(i=2;i<20000000+1;i++){
    ppp[i] = 1;
  }
  for(i=2;i<20000000+1;i++){
    if(ppp[i]){
      for(j=2*i;j<20000000+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(2d7+1);
// ll solve1(ll L, ll R){
//   int i;
//   ll res = 0;
//   for(i=0;i<2d7+1;i++) if(L<=i<=R && ppp[i]) res++;
//   for(i=0;i<2d7+1;i++) if(2*L-1<=i<=2*R-1 && ppp[i]) res++;
//   return res;
// }
// 
// {
//   ll L, R, res;
//   L = llReader(1, 1d7, ' ');
//   R = llReader(L, 1d7, '\n');
//   assert(getchar() == EOF);
//   
//   int i, j;
//   for(i=2;i<2d7+1;i++) ppp[i] = 1;
//   for(i=2;i<2d7+1;i++) if(ppp[i]) for(j=2*i;j<2d7+1;j+=i) ppp[j] = 0;
// 
//   res = solve1(L,R);
//   wt(res);
// }
0