QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#264074 | #6823. Coffee Overdose | vp_account# | WA | 81ms | 3888kb | C++14 | 1.5kb | 2023-11-25 12:21:51 | 2023-11-25 12:21:51 |
Judging History
answer
#include<bits/stdc++.h>
#define int long long
using namespace std;
int s,c,ans,T;
int read(){
int x=0,f=1;char ch=getchar();
while (!isdigit(ch)) {if (ch=='-') f=-1;ch=getchar();}
while (isdigit(ch)) x=x*10+ch-48,ch=getchar();
return x*f;
}
int f(int x,int y){
int mid=y+(x-1)*c; if (mid>s) return 0;
return (s+mid+1)*(s-mid)+(c-1)*(y+mid)*x;
}
signed main(){
T=read();while (T--){
s=read();c=read()+1;ans=0;
/*for (int i=0;i<=(s-1)/c+1;i++)
for (int j=1;j<=s;j++)
ans=max(ans,f(i,j)); */
const int limit=(s-1)/c+1; int head=c/2,tail=c/2;
for (int i=max(limit-60,0ll);i<=limit;i++){
const int x=f(i,c/2);int cur,last;
head=min(head+100,c/2);tail=max(tail-100,c/2);
last=f(i,head);ans=max(ans,last);
while (head>1&&(cur=f(i,head-1))>=last) head--,last=cur,ans=max(ans,cur);
last=f(i,tail);ans=max(ans,last);
while (tail<s&&(cur=f(i,tail+1))>=last) tail++,last=cur,ans=max(ans,cur);
for (int j=max(0ll,s-10);j<=s;j++) ans=max(ans,f(i,j));
}
head=tail=c/2;
for (int i=0;i<=min(60ll,limit);i++){
const int x=f(i,c/2);int cur,last;
head=min(head+100,c/2);tail=max(tail-100,c/2);
last=f(i,head);ans=max(ans,last);
while (head>1&&(cur=f(i,head-1))>=last) head--,last=cur,ans=max(ans,cur);
last=f(i,tail);ans=max(ans,last);
while (tail<s&&(cur=f(i,tail+1))>=last) tail++,last=cur,ans=max(ans,cur);
for (int j=max(0ll,s-10);j<=s;j++) ans=max(ans,f(i,j));
}
printf("%lld\n",ans/2);
}
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 1ms
memory: 3812kb
input:
4 1 2 2 1 10 4 172800 172800
output:
2 3 63 29859840000
result:
ok 4 tokens
Test #2:
score: 0
Accepted
time: 36ms
memory: 3884kb
input:
100000 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 1 14 1 15 1 16 1 17 1 18 1 19 1 20 1 21 1 22 1 23 1 24 1 25 1 26 1 27 1 28 1 29 1 30 1 31 1 32 1 33 1 34 1 35 1 36 1 37 1 38 1 39 1 40 1 41 1 42 1 43 1 44 1 45 1 46 1 47 1 48 1 49 1 50 1 51 1 52 1 53 1 54 1 55 1 56 1 57 1 58 1 59 1 60 1 ...
output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 ...
result:
ok 100000 tokens
Test #3:
score: -100
Wrong Answer
time: 81ms
memory: 3888kb
input:
100000 201 1 201 2 201 3 201 4 201 5 201 6 201 7 201 8 201 9 201 10 201 11 201 12 201 13 201 14 201 15 201 16 201 17 201 18 201 19 201 20 201 21 201 22 201 23 201 24 201 25 201 26 201 27 201 28 201 29 201 30 201 31 201 32 201 33 201 34 201 35 201 36 201 37 201 38 201 39 201 40 201 41 201 42 201 43 2...
output:
20301 20302 20304 20309 20316 20328 20343 20365 20391 20426 20466 20517 20574 20644 20721 20813 20913 21030 21156 21301 21435 21588 21735 21837 22001 22152 22248 22359 22533 22680 22785 22848 22974 23154 23310 23436 23532 23598 23634 23801 23985 24150 24295 24420 24525 24610 24675 24720 24745 24901 ...
result:
wrong answer 53704th words differ - expected: '83844', found: '83744'