結果

問題 No.1657 Sum is Prime (Easy Version)
ユーザー LayCurse
提出日時 2021-08-01 20:21:43
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 3,313 bytes
コンパイル時間 2,236 ms
コンパイル使用メモリ 220,160 KB
最終ジャッジ日時 2025-01-23 13:22:01
ジャッジサーバーID
(参考情報)
judge4 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1 WA * 2
other AC * 19 WA * 2
権限があれば一括ダウンロードができます

ソースコード

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);
// }
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0