QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#391019#6823. Coffee OverdoseNahidameowWA 10ms3660kbC++201.2kb2024-04-16 11:32:552024-04-16 11:32:55

Judging History

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

  • [2024-04-16 11:32:55]
  • 评测
  • 测评结果:WA
  • 用时:10ms
  • 内存:3660kb
  • [2024-04-16 11:32:55]
  • 提交

answer

#include<bits/stdc++.h>
#define pd push_back
#define all(A) A.begin(),A.end()
#define lower_bound lb
#define ve std::vector
typedef long long ll;
typedef long long ll;
typedef __int128 Int;
typedef unsigned long long ul;
typedef long double LD;
bool FileIfstream(std::string name){
	std::ifstream f(name.c_str());
	return f.good();
}
namespace Math{
	ll QP(ll x,ll y,ll mod){ll ans=1;for(;y;y>>=1,x=x*x%mod)if(y&1)ans=ans*x%mod;return ans;}
	ll inv(ll x,ll mod){return QP(x,mod-2,mod);}
}
const int N=2e5+10;
const int mod=998244353;
void solve(){
	//don't forget to open long long
	ll S,C;std::cin>>S>>C;
	ll ans=0;
	LD A=-C/2.0,B=C/2.0+(C*C-C)/2.0,CS=S*(S+1)/2;
	LD x=std::min(-B/(2*A),LD(1.0*S/C));
	auto get=[&](ll x)->ll{
		x=std::max(x,0ll);
		return round(A*x*x+B*x+CS);
	};
	ans=S*(S+1)/2;
	ans=std::max({ans,get(ceil(x)),get(floor(x))});
	std::cout<<ans<<'\n';
}
int main(){
#ifndef ONLINE_JUDGE
	if(!FileIfstream("IO.in")){
		freopen("IO.in","w",stdout);
		return 0;
	}
	freopen("IO.in","r",stdin);
	freopen("IO.out","w",stdout);
#endif
	std::ios::sync_with_stdio(false);
	std::cin.tie(0);
	std::cout.tie(0);
	int T=1;
	std::cin>>T;
	while(T--)solve();

	return 0;
}




详细

Test #1:

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

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: 10ms
memory: 3660kb

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'