传送门:Triangle
题目描述:(原题目为英文,我这里讲一下题目大意)
给定一个整数 S
,你需要找到六个整数 X1
, Y1
, X2
, Y2
, X3
, Y3
,满足以下条件:
- 取值范围: 所有六个整数都必须在 0 到 1e9 之间(包含 0 和 1e9)。
- 三角形面积: 以
(X1, Y1)
,(X2, Y2)
, 和(X3, Y3)
为顶点的三角形的面积必须等于S/2
。
约束条件:
S
的取值范围是 1 到 1e18(包含 1 和 1e18)。- 所有输入值都是整数。
输入:
输入一个整数 S
。
输出:
输出六个整数 X1
, Y1
, X2
, Y2
, X3
, Y3
,用空格分隔。如果存在多个解,输出任意一个即可。
简而言之: 给定一个面积 S/2
,找到三个坐标点,使得这三个点构成的三角形的面积正好是 S/2
,每个坐标点的横纵坐标都在 0 到 1e9 之间。
题解
#include <iostream>
using namespace std;
long long s,v,a,b;
int main(){
cin>>s;
v=1e9;
a=(v-s%v)%v;
b=(s+a)/v;
cout<<"0 0 1000000000 1 "<<a<<" "<<b<<endl;
return 0;
}