QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#264134 | #6823. Coffee Overdose | vp_account# | WA | 23ms | 3568kb | C++14 | 1.1kb | 2023-11-25 13:01:08 | 2023-11-25 13:01:08 |
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;
for (int i=max(limit-60,0ll);i<=limit;i++){
const int x=f(i,c/2);int cur,last,head=c/2; ans=max(ans,x);
last=x; while (head>1&&(cur=f(i,head-1))>=last) head--,last=cur,ans=max(ans,cur);
for (int j=max(0ll,s-10);j<=s;j++) ans=max(ans,f(i,j));
}
for (int i=0;i<=min(60ll,limit);i++){
const int x=f(i,c/2);int cur,last,head=c/2; ans=max(ans,x);
last=x; while (head>1&&(cur=f(i,head-1))>=last) head--,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;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 3568kb
input:
4 1 2 2 1 10 4 172800 172800
output:
2 3 63 29859840000
result:
ok 4 tokens
Test #2:
score: -100
Wrong Answer
time: 23ms
memory: 3524kb
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:
wrong answer 8010th words differ - expected: '230', found: '227'