結果
| 問題 |
No.1657 Sum is Prime (Easy Version)
|
| コンテスト | |
| ユーザー |
LayCurse
|
| 提出日時 | 2021-08-02 22:47:32 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 3,309 bytes |
| コンパイル時間 | 2,887 ms |
| コンパイル使用メモリ | 218,612 KB |
| 最終ジャッジ日時 | 2025-01-23 13:45:52 |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 20 RE * 1 |
ソースコード
#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-1, ' ');
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-1, ' ');
// 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);
// }
LayCurse