ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#204642 | #3623. 小W的背包 | OccDreamer | 100 | 2993ms | 5840kb | C++ | 2.5kb | 2024-06-08 09:56:25 | 2024-06-08 13:03:04 |
answer
//OccDreamer
#include<bits/stdc++.h>
#define vc vector
#define db double
#define fi first
#define se second
#define ll long long
#define mk make_pair
#define pb push_back
#define RI register int
#define PI pair<int,int>
#define ull unsigned long long
#define err cerr << " -_- " << endl
#define debug cerr << " ------------------- " << endl
#define input(x) freopen(#x".in","r",stdin)
#define output(x) freopen(#x".out","w",stdout)
#define NO puts("No")
#define YES puts("Yes")
//#define OccDreamer
//#define int long long
using namespace std;
namespace IO{
inline ll read(){
ll X=0, W=0; char ch=getchar();
while(!isdigit(ch)) W|=ch=='-', ch=getchar();
while(isdigit(ch)) X=(X<<1)+(X<<3)+(ch^48), ch=getchar();
return W?-X:X;
}
inline void write(ll x){
if(x<0) x=-x, putchar('-');
if(x>9) write(x/10);
putchar(x%10+'0');
}
inline void sprint(ll x){write(x), putchar(32);}
inline void eprint(ll x){write(x), putchar(10);}
}using namespace IO;
const int MAXN = 3e5+5;
const int mod = 998244353;
int n, q, z, tot;
ll pre[MAXN], w[MAXN], sum;
struct val{
ll l, r, v;
inline bool friend operator < (const val &x, const val &y){return x.l<y.l;}
}seg[MAXN];
inline void query(ll k, ll a, ll b, int i){
if(a>b) swap(a,b);
int o=upper_bound(w+1,w+1+(n+1),k)-w-1;
if(a+b>pre[o]) return puts("No"), void();
ll p=pre[o]; int l, r, mid;
l=1, r=tot;
while(l<=r){
mid=(l+r)>>1;
if(seg[mid].r<a) l=mid+1;
else r=mid-1;
}
int id;
if(l==tot+1) return puts("No"), void();
else id=seg[l].v;
p=min(p,pre[id]);
if(b<=p-a) puts("Yes"), sum+=i;
else puts("No");
return ;
}
inline void prework(){
ll L=-1, R=-1;
for(int i=1;i<=n;++i){
if(L==-1){
L=max(pre[i-1]-w[i]+2,0ll), R=w[i]-1;
if(L>R) L=R=-1;
else seg[++tot]=val{L,R,i-1};
}
else{
R=L-1, L=max(pre[i-1]-w[i]+2,0ll);
if(L>R) L=R+1;
else seg[++tot]=val{L,R,i-1};
}
}
if(L==-1) seg[++tot]=val{0,pre[n],n};
else if(L) seg[++tot]=val{0,L-1,n};
return ;
}
signed main(){
n=read(), q=read();
for(int i=1;i<=n;++i) w[i]=read();
sort(w+1,w+1+n); w[n+1]=2e18;
for(int i=1;i<=n;++i) pre[i]=pre[i-1]+w[i];
prework(); sort(seg+1,seg+1+tot);
z=read(); ll k, a, b, j, c, d;
for(int i=1;i<=q;++i){
j=read(), c=read(), d=read();
k=j-sum*z; a=c-sum*z; b=d-sum*z;
query(k,a,b,i);
}
return 0;
}
详细
小提示:点击横条可展开更详细的信息
Subtask #1:
score: 10
Accepted
Test #1:
score: 10
Accepted
time: 0ms
memory: 1152kb
input:
10 10 29 1 11 5 2 48 1 3 3 34 0 1 1 1 7 2 4 11 3 1 7 474806183402 402698617390 33 11 9 4 6 12 1 3812...
output:
Yes Yes Yes No No No No No No No
result:
ok 10 tokens
Test #2:
score: 0
Accepted
time: 0ms
memory: 1152kb
input:
10 10 5 24 30 10 1 1 3 1 2 1 0 3 8 0 3 495612370552 92914514259 0 0 0 5 18 10 0 0 0 0 0 0 0 0 0 3 34...
output:
Yes No Yes No Yes Yes Yes No Yes No
result:
ok 10 tokens
Test #3:
score: 0
Accepted
time: 0ms
memory: 1140kb
input:
10 10 1 1 1 1 2 1 1 3 3 1 0 1 7 6 1 442476885652 309995768094 1 261016119655 768884465441 1 9 5 1 3 ...
output:
No No No No Yes No No No Yes No
result:
ok 10 tokens
Subtask #2:
score: 10
Accepted
Test #4:
score: 10
Accepted
time: 80ms
memory: 1164kb
input:
100 300000 2 2 2 1 1 205 1 200 200 2 55 200 2 2 200 200 2 2 1 1 200 55 2 200 1 2 2 55 2 59 2 2 200 2...
output:
Yes No Yes Yes Yes No Yes No Yes No No Yes Yes Yes Yes Yes Yes Yes Yes Yes No Yes No No Yes No Yes N...
result:
ok 300000 tokens
Test #5:
score: 0
Accepted
time: 70ms
memory: 1164kb
input:
100 300000 226 257 3 214 208 269 1 228 210 205 1 273 12 288 207 5 251 203 246 209 225 207 234 200 20...
output:
Yes No Yes Yes Yes No No No No No Yes Yes Yes No Yes Yes Yes Yes Yes No Yes Yes No No No No No Yes Y...
result:
ok 300000 tokens
Test #6:
score: 0
Accepted
time: 77ms
memory: 1160kb
input:
100 300000 21 22 26 22 20 20 27 27 34 29 32 19 19 24 19 1 22 28 27 21 20 24 26 19 21 28 31 21 29 32 ...
output:
No No Yes No No No No Yes No No No No Yes Yes No Yes No No Yes Yes Yes Yes No No Yes No Yes Yes No N...
result:
ok 300000 tokens
Subtask #3:
score: 10
Accepted
Test #7:
score: 10
Accepted
time: 70ms
memory: 1232kb
input:
5000 300000 990 2500 2500 989 2500 5 2500 1007 1689 2500 993 996 1502 2500 2500 989 2500 1253 994 5 ...
output:
Yes Yes Yes No No No Yes No Yes Yes Yes No Yes Yes Yes Yes Yes No Yes Yes No Yes Yes No Yes Yes Yes ...
result:
ok 300000 tokens
Test #8:
score: 0
Accepted
time: 85ms
memory: 1232kb
input:
5000 300000 2573 2500 3377 3834 2510 3456 4334 2514 2577 2511 2551 2501 2500 2502 2519 2674 2546 258...
output:
No No No No No No No No Yes Yes No Yes No Yes No No Yes No Yes No No No Yes No Yes No No No Yes No N...
result:
ok 300000 tokens
Test #9:
score: 0
Accepted
time: 78ms
memory: 1236kb
input:
5000 300000 17 16 18 19 16 25 17 20 15 15 29 17 25 15 29 15 22 17 26 21 28 20 25 15 26 18 25 17 22 2...
output:
No No Yes No No No Yes No No No No No Yes No Yes No No No No Yes Yes Yes No Yes No No Yes No No Yes ...
result:
ok 300000 tokens
Subtask #4:
score: 10
Accepted
Test #10:
score: 10
Accepted
time: 141ms
memory: 5836kb
input:
300000 300000 999999700006 999999770898 999999701005 999999709476 999999700060 999999700000 99999970...
output:
No No No No Yes No No Yes No Yes Yes Yes Yes Yes Yes No Yes No No No No No No No Yes Yes Yes Yes No ...
result:
ok 300000 tokens
Test #11:
score: 0
Accepted
time: 156ms
memory: 5836kb
input:
300000 300000 999999808789 999999725959 999999703995 999999700037 999999726780 999999823439 99999993...
output:
No No No No Yes No No Yes No No Yes Yes Yes Yes No No No Yes Yes No Yes No Yes No No Yes Yes Yes Yes...
result:
ok 300000 tokens
Test #12:
score: 0
Accepted
time: 170ms
memory: 5836kb
input:
300000 300000 650787868285 43 650787341596 650790889570 650787341595 650787342336 650787476642 65119...
output:
Yes Yes Yes Yes No No Yes Yes No Yes No No Yes No No Yes No Yes Yes No Yes No No No Yes Yes Yes No N...
result:
ok 300000 tokens
Subtask #5:
score: 10
Accepted
Test #13:
score: 10
Accepted
time: 173ms
memory: 5836kb
input:
300000 300000 999999700006 999999770898 999999701005 999999709476 999999700060 999999700000 99999970...
output:
No Yes No Yes Yes Yes Yes No Yes Yes No Yes Yes Yes Yes Yes Yes Yes Yes Yes No Yes No Yes Yes Yes Ye...
result:
ok 300000 tokens
Test #14:
score: 0
Accepted
time: 169ms
memory: 5840kb
input:
300000 300000 999999808789 999999725959 999999703995 999999700037 999999726780 999999823439 99999993...
output:
Yes Yes No Yes Yes Yes Yes Yes Yes No Yes No No Yes Yes No Yes No Yes Yes Yes Yes Yes Yes Yes Yes Ye...
result:
ok 300000 tokens
Test #15:
score: 0
Accepted
time: 195ms
memory: 5832kb
input:
300000 300000 650787868285 43 650787341596 650790889570 650787341595 650787342336 650787476642 65119...
output:
No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No Yes Yes Yes No Yes Yes Yes Ye...
result:
ok 300000 tokens
Subtask #6:
score: 10
Accepted
Test #16:
score: 10
Accepted
time: 46ms
memory: 1164kb
input:
100 300000 2 2 2 1 1 205 1 200 200 2 55 200 2 2 200 200 2 2 1 1 200 55 2 200 1 2 2 55 2 59 2 2 200 2...
output:
No Yes Yes Yes Yes Yes No Yes No Yes Yes Yes Yes No Yes Yes No Yes Yes Yes No No Yes No No Yes Yes Y...
result:
ok 300000 tokens
Test #17:
score: 0
Accepted
time: 36ms
memory: 1160kb
input:
100 300000 226 257 3 214 208 269 1 228 210 205 1 273 12 288 207 5 251 203 246 209 225 207 234 200 20...
output:
No Yes Yes Yes Yes Yes Yes No No No No Yes No No No No Yes No Yes No No Yes No No Yes Yes Yes Yes No...
result:
ok 300000 tokens
Test #18:
score: 0
Accepted
time: 46ms
memory: 1160kb
input:
100 300000 21 22 26 22 20 20 27 27 34 29 32 19 19 24 19 1 22 28 27 21 20 24 26 19 21 28 31 21 29 32 ...
output:
No No No Yes No No No No No Yes Yes Yes No Yes No No No Yes Yes No Yes Yes Yes Yes No No No No No Ye...
result:
ok 300000 tokens
Subtask #7:
score: 10
Accepted
Test #19:
score: 10
Accepted
time: 64ms
memory: 1232kb
input:
5000 300000 990 2500 2500 989 2500 5 2500 1007 1689 2500 993 996 1502 2500 2500 989 2500 1253 994 5 ...
output:
No Yes No Yes Yes No Yes Yes Yes No Yes Yes Yes Yes No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No...
result:
ok 300000 tokens
Test #20:
score: 0
Accepted
time: 62ms
memory: 1232kb
input:
5000 300000 2573 2500 3377 3834 2510 3456 4334 2514 2577 2511 2551 2501 2500 2502 2519 2674 2546 258...
output:
No Yes Yes No No No Yes Yes No No No Yes Yes Yes No No Yes Yes Yes No No No Yes No Yes No Yes No Yes...
result:
ok 300000 tokens
Test #21:
score: 0
Accepted
time: 45ms
memory: 1232kb
input:
5000 300000 17 16 18 19 16 25 17 20 15 15 29 17 25 15 29 15 22 17 26 21 28 20 25 15 26 18 25 17 22 2...
output:
No No No Yes Yes No Yes Yes No No Yes No No No No Yes No Yes No Yes No Yes No No No No Yes No No No ...
result:
ok 300000 tokens
Subtask #8:
score: 10
Accepted
Test #22:
score: 10
Accepted
time: 171ms
memory: 5836kb
input:
300000 300000 999999700006 999999770898 999999701005 999999709476 999999700060 999999700000 99999970...
output:
No No Yes Yes No No Yes No No No Yes Yes No No Yes No Yes No Yes Yes No Yes Yes Yes Yes Yes No No Ye...
result:
ok 300000 tokens
Test #23:
score: 0
Accepted
time: 184ms
memory: 5836kb
input:
300000 300000 999999808789 999999725959 999999703995 999999700037 999999726780 999999823439 99999993...
output:
Yes No No No No No Yes No No Yes Yes Yes Yes No Yes Yes Yes No No Yes Yes No No Yes Yes No No Yes No...
result:
ok 300000 tokens
Test #24:
score: 0
Accepted
time: 186ms
memory: 5832kb
input:
300000 300000 650787868285 43 650787341596 650790889570 650787341595 650787342336 650787476642 65119...
output:
No Yes Yes No Yes Yes Yes No Yes Yes No Yes Yes Yes Yes No Yes Yes Yes Yes Yes No No Yes No Yes Yes ...
result:
ok 300000 tokens
Subtask #9:
score: 20
Accepted
Test #25:
score: 20
Accepted
time: 213ms
memory: 5836kb
input:
300000 300000 999999700006 999999770898 999999701005 999999709476 999999700060 999999700000 99999970...
output:
No No No No No Yes Yes No Yes No Yes Yes No No Yes No Yes No No Yes No Yes Yes No Yes Yes Yes Yes No...
result:
ok 300000 tokens
Test #26:
score: 0
Accepted
time: 232ms
memory: 5840kb
input:
300000 300000 999999808789 999999725959 999999703995 999999700037 999999726780 999999823439 99999993...
output:
Yes No Yes Yes No Yes Yes No No Yes Yes Yes No Yes Yes Yes No No No Yes Yes No Yes No No Yes No No Y...
result:
ok 300000 tokens
Test #27:
score: 0
Accepted
time: 244ms
memory: 5836kb
input:
300000 300000 650787868285 43 650787341596 650790889570 650787341595 650787342336 650787476642 65119...
output:
No Yes No Yes Yes Yes No Yes No No No No No Yes No Yes Yes No No Yes No Yes Yes Yes No No No No No Y...
result:
ok 300000 tokens
Extra Test:
score: 0
Extra Test Passed