🌟
AGC 036 | A - Triangle
問題
解法
コード
実装時のTips
- long doubleを使うと浮動小数点で誤差がでる可能性があるので割り切れるかどうかでceilを実現している
#include <bits/stdc++.h>
#include <atcoder/all>
using namespace std;
using namespace atcoder;
using ll = long long;
using ld = long double;
using uint = unsigned int;
using ull = unsigned long long;
const int MOD = 1e9 + 7;
void output(vector<ll> v) {
for (int i = 0; i < 6; i++) {
cout << v[i];
if (i != 5) {
cout << " ";
}
}
cout << endl;
}
int main() {
ll s;
cin >> s;
ll a = 1e9;
vector<ll> v = {
a, // x1
0, // y1
1, // x2
0, // y2
0, // x3
0, // y3
};
// 残りのy1とy2を求める
ll y2 = 0;
if (s % a == 0) {
y2 = s / a;
} else {
y2 = s / a + 1;
}
ll y1 = a * y2 - s;
v[1] = y1;
v[3] = y2;
output(v);
}
参考
Discussion