QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#587219#9134. Building a FenceDjangle162857WA 2ms3848kbC++141.3kb2024-09-24 18:32:412024-09-24 18:32:43

Judging History

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

  • [2024-09-24 18:32:43]
  • 评测
  • 测评结果:WA
  • 用时:2ms
  • 内存:3848kb
  • [2024-09-24 18:32:41]
  • 提交

answer

#define _CRT_SECURE_NO_WARNINGS
#include<algorithm>
#include<iostream>
#include<iomanip>
#include<vector>
#include<set>
using namespace std;

typedef long long ll;
const int inf=1000000000;
ll w,h,s;

inline ll solve(ll x,ll y,ll s)
{
	if(x>y)swap(x,y);
	if(!x&&!y)return 0;
	if(!x)
	{
		return y/s+(y%s!=0);
	}
	if(x+y==s)return 1;
	ll res=x/s;
	if(x%s)
	{
		res++;
		if(y>=(x/s+1)*s-x)
			y-=((x/s+1)*s-x);
		if(y==0)return res;
	}
	res+=y/s;
	if(y%s)res++;
	return res;
}


int main()
{
	//cout<<solve(1,1,4)<<endl;
	int T;
	scanf("%d",&T);
	while(T--)
	{
		ll ans=0;
		scanf("%lld%lld%lld",&w,&h,&s);
		if(w>=s&&h>=s)
		{
			if((2*(w+h))%s==0)ans=(2*(w+h))/s;
			else ans=(2*(w+h))/s+1;
			printf("%lld\n",2*(w+h)/s);
			continue;
		}
		if(w>h)swap(w,h);
		ans=1ll*inf;
		ans=min(ans,2ll+solve(h,h,s));
		if(s>=w&&(s-w)<=h)
			//cout<<2ll+solve(h-(s-w),h-(s-w),s)<<endl,
			ans=min(ans,2ll+solve(h-(s-w),h-(s-w),s));
		if(s>=w&&2*(s-w)<=h)
			//cout<<2ll+solve(h-2*(s-w),h,s)<<endl,
			ans=min(ans,2ll+solve(h-2*(s-w),h,s));
		if(s>=h&&s-h<=w)
			//cout<<2ll+solve(w-(s-h),w-(s-h),s)<<endl,
			ans=min(ans,2ll+solve(w-(s-h),w-(s-h),s));
		if(s>=h&&2*(s-h)<=w)
			//cout<<2ll+solve(w,w-2*(s-h),s)<<endl,
			ans=min(ans,2ll+solve(w,w-2*(s-h),s));
		printf("%lld\n",ans);
	}
	return 0;
}

詳細信息

Test #1:

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

input:

7
7 9 4
1 1 2
1 1 4
4 6 2
3 3 5
10 6 4
1 11 5

output:

8
2
4
10
4
8
5

result:

ok 7 numbers

Test #2:

score: -100
Wrong Answer
time: 2ms
memory: 3804kb

input:

8000
1 1 1
1 1 2
1 1 3
1 1 4
1 1 5
1 1 6
1 1 7
1 1 8
1 1 9
1 1 10
1 1 11
1 1 12
1 1 13
1 1 14
1 1 15
1 1 16
1 1 17
1 1 18
1 1 19
1 1 20
1 2 1
1 2 2
1 2 3
1 2 4
1 2 5
1 2 6
1 2 7
1 2 8
1 2 9
1 2 10
1 2 11
1 2 12
1 2 13
1 2 14
1 2 15
1 2 16
1 2 17
1 2 18
1 2 19
1 2 20
1 3 1
1 3 2
1 3 3
1 3 4
1 3 5
1 3...

output:

4
2
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
6
3
2
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
8
4
4
2
4
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
10
5
4
4
2
4
4
3
4
4
4
4
4
4
4
4
4
4
4
4
12
6
4
3
4
2
4
4
4
3
4
4
4
4
4
4
4
4
4
4
14
7
5
4
4
4
2
4
4
4
4
3
4
4
4
4
4
4
4
4
16
8
6
4
4
4
4
2
4
4
4
4
4
3
4
4
4
4
4
4
18
9
6
5
4
3
4
4...

result:

wrong answer 863rd numbers differ - expected: '5', found: '4'