QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#842572 | #9969. Kindergarten Square | ucup-team5243# | AC ✓ | 0ms | 3840kb | C++23 | 10.8kb | 2025-01-04 13:29:57 | 2025-01-04 13:29:58 |
Judging History
answer
//line 1 "answer.cpp"
#if !__INCLUDE_LEVEL__
#include __FILE__
int solve() {
ll a,b,c,d; input(a,b,c,d);
ll width = c - a;
if (width <= 0) return print(-1);
if (b != a + 1) return print(-1);
if (d != c + 1) return print(-1);
ll h = a / width + 1;
ll w = a % width + 1;
if (a % width == 0) return print(-1);
print(100000, width);
return 0;
}
int main() {
ll t; input(t);
rep(t) solve();
}
#else
//line 2 "/home/seekworser/.cpp_lib/competitive_library/competitive/std/std.hpp"
#include <bits/stdc++.h>
#ifndef LOCAL_TEST
#pragma GCC target ("avx")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
#endif // LOCAL_TEST
using namespace std;
using std::cout;
// shorten typenames
using ll = long long;
using pii = pair<int, int>; using pll = pair<ll, ll>;
using vi = vector<int>; using vvi = vector<vi>; using vvvi = vector<vvi>;
using vl = vector<ll>; using vvl = vector<vl>; using vvvl = vector<vvl>;
using vb = vector<bool>; using vvb = vector<vb>; using vvvb = vector<vvb>;
using vc = vector<char>; using vvc = vector<vc>; using vvvc = vector<vvc>;
using vd = vector<double>; using vvd = vector<vd>; using vvvd = vector<vvd>;
using vs = vector<string>; using vvs = vector<vector<string>>; using vvvs = vector<vector<vector<string>>>;
template<typename T> vector<vector<T>> vv(int h, int w, T val = T()) { return vector(h, vector<T>(w, val)); }
template<typename T> vector<vector<vector<T>>> vvv(int h1, int h2, int h3, T val = T()) { return vector(h1, vector(h2, vector<T>(h3, val))); }
template<typename T> vector<vector<vector<vector<T>>>> vvvv(int h1, int h2, int h3, int h4, T val = T()) { return vector(h1, vector(h2, vector(h3, vector<T>(h4, val)))); }
template <class T> using priority_queue_min = priority_queue<T, vector<T>, greater<T>>;
// define CONSTANTS
constexpr double PI = 3.14159265358979323;
constexpr int INF = 100100111; constexpr ll INFL = 3300300300300300491LL;
float EPS = 1e-8; double EPSL = 1e-10;
template<typename T> bool eq(const T x, const T y) { return x == y; }
template<> bool eq<double>(const double x, const double y) { return (abs(x - y) < EPSL * x || abs(x - y) < EPSL); }
template<> bool eq<float>(const float x, const float y) { return abs(x - y) < EPS * x; }
template<typename T> bool neq(const T x, const T y) { return !(eq<T>(x, y)); }
template<typename T> bool ge(const T x, const T y) { return (eq<T>(x, y) || (x > y)); }
template<typename T> bool le(const T x, const T y) { return (eq<T>(x, y) || (x < y)); }
template<typename T> bool gt(const T x, const T y) { return !(le<T>(x, y)); }
template<typename T> bool lt(const T x, const T y) { return !(ge<T>(x, y)); }
constexpr int MODINT998244353 = 998244353;
constexpr int MODINT1000000007 = 1000000007;
// fasten io
struct Nyan { Nyan() { cin.tie(nullptr); ios::sync_with_stdio(false); cout << fixed << setprecision(18); } } nyan;
// define macros
#define all(a) (a).begin(), (a).end()
#define sz(x) ((ll)(x).size())
#define rep1(n) for(ll dummy_iter = 0LL; dummy_iter < n; ++dummy_iter) // 0,1,...,n-1
#define rep2(i, n) for(ll i = 0LL, i##_counter = 0LL; i##_counter < ll(n); ++(i##_counter), (i) = i##_counter) // i=0,1,...,n-1
#define rep3(i, s, t) for(ll i = ll(s), i##_counter = ll(s); i##_counter < ll(t); ++(i##_counter), (i) = (i##_counter)) // i=s,s+1,...,t-1
#define rep4(i, s, t, step) for(ll i##_counter = step > 0 ? ll(s) : -ll(s), i##_end = step > 0 ? ll(t) : -ll(t), i##_step = abs(step), i = ll(s); i##_counter < i##_end; i##_counter += i##_step, i = step > 0 ? i##_counter : -i##_counter) // i=s,s+step,...,<t
#define overload4(a, b, c, d, e, ...) e
#define rep(...) overload4(__VA_ARGS__, rep4, rep3, rep2, rep1)(__VA_ARGS__)
#define repe(a, v) for(auto& a : (v)) // iterate over all elements in v
#define smod(n, m) ((((n) % (m)) + (m)) % (m))
#define sdiv(n, m) (((n) - smod(n, m)) / (m))
#define uniq(a) {sort(all(a)); (a).erase(unique(all(a)), (a).end());}
int Yes(bool b=true) { cout << (b ? "Yes\n" : "No\n"); return 0; };
int YES(bool b=true) { cout << (b ? "YES\n" : "NO\n"); return 0; };
int No(bool b=true) {return Yes(!b);};
int NO(bool b=true) {return YES(!b);};
template<typename T, size_t N> T max(array<T, N>& a) { return *max_element(all(a)); };
template<typename T, size_t N> T min(array<T, N>& a) { return *min_element(all(a)); };
template<typename T> T max(vector<T>& a) { return *max_element(all(a)); };
template<typename T> T min(vector<T>& a) { return *min_element(all(a)); };
template<typename T> vector<T> vec_slice(const vector<T>& a, int l, int r) { vector<T> rev; rep(i, l, r) rev.push_back(a[i]); return rev; };
template<typename T> T sum(vector<T>& a, T zero = T(0)) { T rev = zero; rep(i, sz(a)) rev += a[i]; return rev; };
template<typename T> bool in_range(const T& val, const T& s, const T& t) { return s <= val && val < t; };
template <class T> inline vector<T>& operator--(vector<T>& v) { repe(x, v) --x; return v; }
template <class T> inline vector<T>& operator++(vector<T>& v) { repe(x, v) ++x; return v; }
ll powm(ll a, ll n, ll mod=INFL) {
ll res = 1;
while (n > 0) {
if (n & 1) res = (res * a) % mod;
if (n > 1) a = (a * a) % mod;
n >>= 1;
}
return res;
}
ll sqrtll(ll x) {
assert(x >= 0);
ll rev = sqrt(x);
while(rev * rev > x) --rev;
while((rev+1) * (rev+1)<=x) ++rev;
return rev;
}
template <class T> inline bool chmax(T& M, const T& x) { if (M < x) { M = x; return true; } return false; }
template <class T> inline bool chmin(T& m, const T& x) { if (m > x) { m = x; return true; } return false; }
int digit(ll x, int d=10) { int rev=0; while (x > 0) { rev++; x /= d;}; return rev; }
/**
* @brief std.hpp
* @docs docs/std/std.md
*/
//line 3 "/home/seekworser/.cpp_lib/competitive_library/competitive/std/io.hpp"
// overload operators (prototypes)
template <class T, class U> inline istream& operator>>(istream& is, pair<T, U>& p);
template <class T> inline istream& operator>>(istream& is, vector<T>& v);
template <class T, class U> inline ostream& operator<<(ostream& os, const pair<T, U>& p);
template <class T> inline ostream& operator<<(ostream& os, const vector<T>& v);
template <typename T, typename S> ostream &operator<<(ostream &os, const map<T, S> &mp);
template <typename T> ostream &operator<<(ostream &os, const set<T> &st);
template <typename T> ostream &operator<<(ostream &os, const multiset<T> &st);
template <typename T> ostream &operator<<(ostream &os, const unordered_set<T> &st);
template <typename T> ostream &operator<<(ostream &os, queue<T> q);
template <typename T> ostream &operator<<(ostream &os, deque<T> q);
template <typename T> ostream &operator<<(ostream &os, stack<T> st);
template <class T, class Container, class Compare> ostream &operator<<(ostream &os, priority_queue<T, Container, Compare> pq);
// overload operators
template <class T, class U> inline istream& operator>>(istream& is, pair<T, U>& p) { is >> p.first >> p.second; return is; }
template <class T> inline istream& operator>>(istream& is, vector<T>& v) { repe(x, v) is >> x; return is; }
template <class T, class U> inline ostream& operator<<(ostream& os, const pair<T, U>& p) { os << p.first << " " << p.second; return os; }
template <class T> inline ostream& operator<<(ostream& os, const vector<T>& v) { rep(i, sz(v)) { os << v.at(i); if (i != sz(v) - 1) os << " "; } return os; }
template <typename T, typename S> ostream &operator<<(ostream &os, const map<T, S> &mp) { for (auto &[key, val] : mp) { os << key << ":" << val << " "; } return os; }
template <typename T> ostream &operator<<(ostream &os, const set<T> &st) { auto itr = st.begin(); for (int i = 0; i < (int)st.size(); i++) { os << *itr << (i + 1 != (int)st.size() ? " " : ""); itr++; } return os; }
template <typename T> ostream &operator<<(ostream &os, const multiset<T> &st) { auto itr = st.begin(); for (int i = 0; i < (int)st.size(); i++) { os << *itr << (i + 1 != (int)st.size() ? " " : ""); itr++; } return os; }
template <typename T> ostream &operator<<(ostream &os, const unordered_set<T> &st) { ll cnt = 0; for (auto &e : st) { os << e << (++cnt != (int)st.size() ? " " : ""); } return os; }
template <typename T> ostream &operator<<(ostream &os, queue<T> q) { while (q.size()) { os << q.front() << " "; q.pop(); } return os; }
template <typename T> ostream &operator<<(ostream &os, deque<T> q) { while (q.size()) { os << q.front(); q.pop_front(); if (q.size()) os << " "; } return os; }
template <typename T> ostream &operator<<(ostream &os, stack<T> st) { while (st.size()) { os << st.top() << " "; st.pop(); } return os; }
template <class T, class Container, class Compare> ostream &operator<<(ostream &os, priority_queue<T, Container, Compare> pq) { while (pq.size()) { os << pq.top() << " "; pq.pop(); } return os; }
template <typename T> int print_sep_end(string sep, string end, const T& val) { (void)sep; cout << val << end; return 0; };
template <typename T1, typename... T2> int print_sep_end(string sep, string end, const T1 &val, const T2 &...remain) {
cout << val << sep;
print_sep_end(sep, end, remain...);
return 0;
};
template <typename... T> int print(const T &...args) { print_sep_end(" ", "\n", args...); return 0; };
template <typename... T> void flush() { cout << flush; };
template <typename... T> int print_and_flush(const T &...args) { print(args...); flush(); return 0; };
#define debug(...) debug_func(0, #__VA_ARGS__, __VA_ARGS__) // debug print
template <typename T> void input(T &a) { cin >> a; };
template <typename T1, typename... T2> void input(T1&a, T2 &...b) { cin >> a; input(b...); };
#ifdef LOCAL_TEST
template <typename T> void debug_func(int i, const T name) { (void)i; (void)name; cerr << endl; }
template <typename T1, typename T2, typename... T3> void debug_func(int i, const T1 &name, const T2 &a, const T3 &...b) {
int scope = 0;
for ( ; (scope != 0 || name[i] != ',') && name[i] != '\0'; i++ ) {
cerr << name[i];
if (name[i] == '(' || name[i] == '{') scope++;
if (name[i] == ')' || name[i] == '}') scope--;
}
cerr << ":" << a << " ";
debug_func(i + 1, name, b...);
}
template <typename T1, typename T2, typename... T3> void debug_func(int i, const T1 &name, T2 &a, T3 &...b) {
int scope = 0;
for ( ; (scope != 0 || name[i] != ',') && name[i] != '\0'; i++ ) {
cerr << name[i];
if (name[i] == '(' || name[i] == '{') scope++;
if (name[i] == ')' || name[i] == '}') scope--;
}
cerr << ":" << a << " ";
debug_func(i + 1, name, b...);
}
#endif
#ifndef LOCAL_TEST
template <typename... T>
void debug_func(T &...) {}
template <typename... T>
void debug_func(const T &...) {}
#endif
/**
* @brief io.hpp
* @docs docs/std/io.md
*/
//line 22 "answer.cpp"
#endif
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3632kb
input:
4 6 7 10 11 2 3 4 5 8 5 5 13 1 2 5 6
output:
100000 4 -1 -1 100000 4
result:
ok All testcases passed.
Test #2:
score: 0
Accepted
time: 0ms
memory: 3556kb
input:
10 1 2 4 5 4 3 2 1 1 2 5 6 2 3 5 6 2 3 6 7 3 4 6 7 2 1 3 4 1 2 2 3 2 3 3 4 7 7 7 7
output:
100000 3 -1 100000 4 100000 3 100000 4 -1 -1 -1 -1 -1
result:
ok All testcases passed.
Test #3:
score: 0
Accepted
time: 0ms
memory: 3772kb
input:
10 1 1 1 1 1 2 3 4 1 2 5 7 4 5 7 8 1001 1002 1003 1004 1001 1002 1005 1007 1004 1005 1007 1008 249 250 251 252 250 251 250 251 250 250 250 251
output:
-1 100000 2 -1 100000 3 100000 2 -1 100000 3 100000 2 -1 -1
result:
ok All testcases passed.
Test #4:
score: 0
Accepted
time: 0ms
memory: 3536kb
input:
10 249 251 250 251 249 250 250 251 249 250 251 251 249 250 251 251 51 52 61 62 50 52 61 62 52 52 61 62 51 51 61 62 51 53 61 62 51 52 60 62
output:
-1 -1 -1 -1 100000 10 -1 -1 -1 -1 -1
result:
ok All testcases passed.
Test #5:
score: 0
Accepted
time: 0ms
memory: 3840kb
input:
10 51 52 62 62 51 52 61 61 51 52 61 63 109 110 119 120 108 110 119 120 110 110 119 120 109 109 119 120 109 111 119 120 109 110 118 120 109 110 120 120
output:
-1 -1 -1 100000 10 -1 -1 -1 -1 -1 -1
result:
ok All testcases passed.
Test #6:
score: 0
Accepted
time: 0ms
memory: 3772kb
input:
10 109 110 119 119 109 110 119 121 1050 1075 2050 2075 1 2 1001 1002 101 102 1101 1102 999 1000 1999 2000 2 2 1001 1002 1 1 1001 1002 1 3 1001 1002 1 2 1000 1002
output:
-1 -1 -1 100000 1000 100000 1000 100000 1000 -1 -1 -1 -1
result:
ok All testcases passed.
Test #7:
score: 0
Accepted
time: 0ms
memory: 3708kb
input:
10 1 2 1002 1002 1 2 1001 1001 1 2 1001 1003 100 102 1101 1102 102 102 1101 1102 101 101 1101 1102 101 103 1101 1102 101 102 1100 1102 101 102 1102 1102 101 102 1101 1101
output:
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1
result:
ok All testcases passed.
Test #8:
score: 0
Accepted
time: 0ms
memory: 3532kb
input:
10 101 102 1101 1103 998 1000 1999 2000 1000 1000 1999 2000 999 999 1999 2000 999 1001 1999 2000 999 1000 1998 2000 999 1000 2000 2000 999 1000 1999 1999 999 1000 1999 2001 48000 48002 49001 49002
output:
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1
result:
ok All testcases passed.
Test #9:
score: 0
Accepted
time: 0ms
memory: 3508kb
input:
10 48002 48002 49001 49002 48001 48001 49001 49002 48001 48003 49001 49002 48001 48002 49000 49002 48001 48002 49002 49002 48001 48002 49001 49001 48001 48002 49001 49003 48100 48102 49101 49102 48102 48102 49101 49102 48101 48101 49101 49102
output:
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1
result:
ok All testcases passed.
Test #10:
score: 0
Accepted
time: 0ms
memory: 3620kb
input:
10 48101 48103 49101 49102 48101 48102 49100 49102 48101 48102 49102 49102 48101 48102 49101 49101 48101 48102 49101 49103 48998 49000 49999 50000 49000 49000 49999 50000 48999 48999 49999 50000 48999 49001 49999 50000 48999 49000 49998 50000
output:
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1
result:
ok All testcases passed.
Test #11:
score: 0
Accepted
time: 0ms
memory: 3528kb
input:
10 48999 49000 50000 50000 48999 49000 49999 49999 1 2 1001 1002 1001 1002 1 2 2 1 1002 1001 1002 1001 2 1 2 1 1001 1002 1 2 1002 1001 50000 49999 1 2 1 49999 2 50000
output:
-1 -1 100000 1000 -1 -1 -1 -1 -1 -1 -1
result:
ok All testcases passed.
Test #12:
score: 0
Accepted
time: 0ms
memory: 3640kb
input:
10 49997 49998 49999 50000 1 2 49998 49999 1 2 49999 50000 24999 25000 49999 50000 1 2 25001 25002 48001 48002 49001 49002 48101 48102 49101 49102 48999 49000 49999 50000 49993 49994 49998 49999 49992 49993 49997 49998
output:
100000 2 100000 49997 100000 49998 100000 25000 100000 25000 100000 1000 100000 1000 100000 1000 100000 5 100000 5
result:
ok All testcases passed.
Test #13:
score: 0
Accepted
time: 0ms
memory: 3780kb
input:
10 49996 49997 49998 49999 49999 50000 49999 50000 1 3 49999 50000 2 3 49998 50000 1 2 49998 49998 1 2 49999 49999 1 25000 25001 50000 47000 46500 48000 47500 49992 49994 49998 49999 49992 49993 49996 49998
output:
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1
result:
ok All testcases passed.
Extra Test:
score: 0
Extra Test Passed