QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#450994 | #6823. Coffee Overdose | algotester# | WA | 59ms | 3712kb | C++14 | 1.3kb | 2024-06-22 20:16:17 | 2024-06-22 20:16:17 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define MAX 128
double R[2*MAX][MAX][MAX];
int B[2*MAX][MAX][MAX];
int n;
double f(int c0, int c1, int c2)
{
if(c0 < 0 || c1 < 0 || c2 < 0) return 0;
double &res = R[c0][c1][c2];
if(B[c0][c1][c2] != 0) return res;
B[c0][c1][c2] = 1;
int a = c0*(c0 - 1);
int b = 4*c0*c1;
int c = 4*c0*c2;
int d = 4*c1*(c1 - 1);
int e = 8*c1*c2;
int g = 2*c2*(2*c2 - 1);
int t = n*n;
if(a + b + c + d + e + g == 0) return res;
return res = (t
+ a*f(c0 - 2, c1 + 1, c2)
+ b*f(c0 - 1, c1 - 1, c2 + 1)
+ c*f(c0 - 1, c1, c2)
+ d*f(c0, c1 - 2, c2 + 1)
+ e*f(c0, c1 - 1, c2)
+ g*f(c0, c1, c2 - 1)
)/(a + b + c + d + e + g + 0.0);
}
long long sum(long long s)
{
return s*(s + 1)/2;
}
void solve(int test)
{
long long s, c;
cin >> s >> c;
long long res = 0;
int ss = s;
if(s > sum(c)) s = sum(c);
long long t = (s + c)/(c + 1);
while(s > t*c)
{
s = t*c;
t = (s + c)/(c + 1);
}
res = sum(ss) - sum(s);
res += c*(t*s - (c + 1)*sum(t - 1));
cout << res << endl;
}
int main()
{
int t = 1;
cin >> t;
for(int i = 0; i < t; ++i)
solve(i);
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 3564kb
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: 59ms
memory: 3712kb
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 6005th words differ - expected: '106', found: '105'