小红的区间构造 - 代码
区间构造,一般就是把左右端点用公式表示出来,多写几组用例找找规律,推出公式即可。
推不出来再考虑用循环遍历枚举。
本代码为前者,记得开 long long。
#include <iostream> using namespace std; using ll = long long; int main() { ll n, k, x; cin >> n >> k >> x; ll d = x * 2 - 2; ll r = x * (n + 1) - 1, l = r - d; if(k >= l && k <= r) { if(k <= (l + r) / 2) cout << x << " " << x + k - 1 << endl; else cout << x + 1 << " " << x + k << endl; } else cout << -1 << endl; return 0; }