QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#376679#6823. Coffee OverdosezhulexuanWA 2ms3632kbC++141.5kb2024-04-04 15:01:202024-04-04 15:01:22

Judging History

你现在查看的是最新测评结果

  • [2024-04-08 20:49:53]
  • hack成功,自动添加数据
  • (/hack/589)
  • [2024-04-04 15:01:22]
  • 评测
  • 测评结果:WA
  • 用时:2ms
  • 内存:3632kb
  • [2024-04-04 15:01:20]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define inf INT_MAX
#define fr(i,l,r) for (i=(l); i<=(r); i++)
#define rfr(i,l,r) for (i=(l); i>=(r); i--)
template<typename T>inline void read(T &n){
    T w=1; n=0; char ch=getchar();
    while (!isdigit(ch) && ch!=EOF){ if (ch=='-') w=-1; ch=getchar(); }
    while (isdigit(ch) && ch!=EOF){ n=(n<<3)+(n<<1)+(ch&15); ch=getchar(); }
    n*=w;
}
template<typename T>inline void write(T x){
    if (x==0){ putchar('0'); return ; }
    T tmp;
    if (x>0) tmp=x;
    else tmp=-x;
    if (x<0) putchar('-');
    char F[105];
    long long cnt=0;
    while (tmp){
        F[++cnt]=tmp%10+48;
        tmp/=10;
    }
    while (cnt) putchar(F[cnt--]);
}
#define Min(x,y) x = min(x,y)
#define Max(x,y) x = max(x,y)
//基础配置=================================================================================
ll n,c;
ll solve1(){
    ll x = (c+1)/2;
    Min(x,n/(c+1)+1);
    return n*(n+1)/2 + c*(c-1)/2 * x - x*(x-1)/2 * c;
}
ll solve2(){
    ll x = n/(c+1)+1;
    return x*n*c - x*(x-1)/2*c*(c+1);
}
void solve(){
    read(n); read(c);
    // printf("solve1 = %lld\n",solve1());
    // printf("solve2 = %lld\n",solve2());
    ll ans = max(solve1(),solve2());
    write(ans); putchar('\n');
}
int main(){
	// freopen("a.in","r",stdin);
//	freopen(".out","w",stdout);
    ll qt;
    read(qt);
    while (qt--) solve();
    return 0;
}
//g++ a.cpp -o a -Wall -Wl,--stack=512000000

详细

Test #1:

score: 100
Accepted
time: 0ms
memory: 3632kb

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: 2ms
memory: 3544kb

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
4
7
11
16
22
29
37
46
56
67
79
92
106
121
137
154
172
191
211
232
254
277
301
326
352
379
407
436
466
497
529
562
596
631
667
704
742
781
821
862
904
947
991
1036
1082
1129
1177
1226
1276
1327
1379
1432
1486
1541
1597
1654
1712
1771
1831
1892
1954
2017
2081
2146
2212
2279
2347
2416
2486
2557
262...

result:

wrong answer 3rd words differ - expected: '3', found: '4'