QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#33576#1429. Hitchenxia25WA 47ms10008kbC++206.1kb2022-06-03 20:01:552022-06-03 20:01:56

Judging History

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

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2022-06-03 20:01:56]
  • 评测
  • 测评结果:WA
  • 用时:47ms
  • 内存:10008kb
  • [2022-06-03 20:01:55]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
bool Mbe;

namespace temp {
// NORMAL
using ll = long long; // using i128 = __int128_t;
using uint = unsigned; using ull = unsigned long long; // using u128 = __uint128_t;
using db = double; using ld = long double; // using f128 = __float128;
// #define int ll
// #define db ld

using tii = tuple<int, int>; using ti3 = tuple<int, int, int>; using ti4 = tuple<int, int, int, int>;
#define mt(...) make_tuple(__VA_ARGS__)
#define X(x) get<0>(x)
#define Y(x) get<1>(x)
#define Z(x) get<2>(x)
#define W(x) get<3>(x)

using vi = vector<int>; using vii = vector<tii>; using vi3 = vector<ti3>; using vi4 = vector<ti4>;
using vvi = vector<vi>; using vvii = vector<vii>; using vvi3 = vector<vi3>; using vvi4 = vector<vi4>;
#define pf(...) emplace_front(__VA_ARGS__)
#define pb(...) emplace_back(__VA_ARGS__)

#define REP(i, l, r) for(int i = (l); i <= (r); ++i)
#define PER(i, r, l) for(int i = (r); i >= (l); --i)
#define y0 kehaixing
#define y1 yigeiwoligiaogiao
#define SZ(x) ((int)(x).size())
#define ALL(x) (x).begin(), (x).end()
int lowbit(int x) { return x & -x; }
template<class T, class U> void chkmx(T &x, U y) { if(y > x) x = y; }
template<class T, class U> void chkmn(T &x, U y) { if(y < x) x = y; }

// FASTIO
namespace fastio {
// #define fread_io
#ifdef fread_io
char buf[1 << 16], *st, *ed, wbuf[1 << 16], *wst = wbuf, *wed = wbuf + (1 << 16);
char gc() { return st == ed && (ed = (st = buf) + fread(buf, 1, 1 << 16, stdin), st == ed) ? -1 : *st++; }
__attribute__((destructor)) void flush() { fwrite(wbuf, 1, wst - wbuf, stdout), wst = wbuf; }
void pc(char x) { wst == wed && (flush(), 0), *wst++ = x; }
#else
char gc() { return getchar(); } void pc(char x) { putchar(x); }
#endif
#define notspace(x) (!isspace(x) && ~(x))
template<class T = int> T read() {
  T x = 0; char c = gc(); bool ne = false;
  while(!isdigit(c)) ne |= c == '-', c = gc();
  while(isdigit(c)) x = 10 * x + (c ^ 48), c = gc();
  return ne ? -x : x;
}
int reads(char *s) {
  int n = 0; char c = gc();
  while(!notspace(c)) c = gc();
  while(notspace(c)) s[n++] = c, c = gc();
  return s[n] = 0, n;
}
template<class T> void prt(T x) {
  x < 0 && (pc('-'), x = -x);
  x > 9 && (prt(x / 10), 0);
  pc(x % 10 ^ 48);
}
void prts(const char *s, int n = INT_MAX) { while(n-- && *s) pc(*s++); }
} using fastio::gc; using fastio::pc;
using fastio::read; using fastio::reads; using fastio::prt; using fastio::prts;

// MATH
constexpr int P = 0;
constexpr ll lnf = 0x3f3f3f3f3f3f3f3f;
#ifdef int
constexpr int inf = 0x3f3f3f3f3f3f3f3f;
#else
constexpr int inf = 0x3f3f3f3f;
#endif

int gcd(int x, int y) { return __gcd(x, y); }
int exgcd(int a, int b, int &x, int &y) {
  if(!b) return x = 1, y = 0, a;
  int d = exgcd(b, a % b, y, x);
  return y -= a / b * x, d;
}
int qpow(int x, int y = P - 2, int p = P) {
  int res = 1;
  while(y) {
    if(y & 1) res = (ll)res * x % p;
    x = (ll)x * x % p;
    y >>= 1;
  } return res;
}
int inv(int a, int p = P) {
  int x, y, d = exgcd(a, p, x, y);
  if(d != 1) return -1;
  return x < 0 ? x + p : x;
}

namespace modint {
  void addto(int &x, int y) { x += y, x >= P && (x -= P), x < 0 && (x += P); }
  int add(int x, int y) { return x < 0 && (x += P), x += y, x >= P ? x - P : x < 0 ? x + P : x; }
  int add0(int x) { return x < 0 ? x + P : x; }
}
// using namespace modint;

template<int N, int p = P> struct fc_t {
  int iv[N], fc[N], ifc[N];
  fc_t() {
    iv[1] = 1; REP(i, 2, N - 1) iv[i] = (ll)iv[p % i] * (p - p / i) % p;
    fc[0] = ifc[0] = 1; REP(i, 1, N - 1) fc[i] = (ll)fc[i - 1] * i % p, ifc[i] = (ll)ifc[i - 1] * iv[i] % p;
  }
  int operator()(int n, int m) {
    if(m < 0 || m > n) return 0;
    return (ll)fc[n] * ifc[m] % p * ifc[n - m] % p;
  }
};
#define fc_init(...) fc_t<__VA_ARGS__> comb; int *iv = comb.iv, *fc = comb.fc, *ifc = comb.ifc
template<int N, int p = P> struct comb_t {
  int comb[N][N];
  comb_t() {
    comb[0][0] = 1;
    REP(i, 1, N - 1) REP(j, 0, i) comb[i][j] = ((j ? comb[i - 1][j - 1] : 0) + comb[i - 1][j]) % p;
  }
};
#define comb_init(...) comb_t<__VA_ARGS__> _comb; auto comb = _comb.comb
} using namespace temp;

constexpr int N = 2e5 + 10;

int n, m;
int l[N], r[N];
vi nums;
void disc() {
  nums.clear();
  REP(i, 1, n) nums.pb(l[i]), nums.pb(r[i]);
  sort(ALL(nums)), nums.resize(unique(ALL(nums)) - nums.begin());
  m = SZ(nums);
  REP(i, 1, n) {
    l[i] = lower_bound(ALL(nums), l[i]) - nums.begin() + 1;
    r[i] = lower_bound(ALL(nums), r[i]) - nums.begin() + 1;
  }
}

vii nei[N];

int dis[N];
int C[N];
bool spfa() {
  REP(i, 0, m) C[i] = 0;
  REP(i, 0, m) dis[i] = inf;
  dis[0] = 0;
  queue<int> q;
  static bool inq[N];
  REP(i, 0, m) inq[i] = false;
  q.push(0), inq[0] = true;
  while(SZ(q)) {
    int x = q.front();
    q.pop(), inq[x] = false;
    for(tii e : nei[x]) {
      int y, len; tie(y, len) = e;
      if(dis[x] + len < dis[y]) {
        dis[y] = dis[x] + len;
        C[y] = C[x] + 1;
        if(C[y] >= m) return false; 
        if(!inq[y]) q.push(y), inq[y] = true;
      }
    }
  }
  return true;
}

vi chs;
bool chk(int L) {
  chs.clear();
  REP(i, 0, m) nei[i].clear();
  REP(i, 1, m) nei[i - 1].pb(i, 1), nei[i].pb(i - 1, 0);
  REP(i, 1, n) {
    nei[l[i] - 1].pb(r[i], L);
    nei[r[i]].pb(l[i] - 1, -1);
  }
  if(!spfa()) return false;
  REP(i, 1, m) if(dis[i] > dis[i - 1]) chs.pb(i);
  // cout << "L = " << L << "\n";
  // REP(i, 0, m) cout << dis[i] << " "; puts("which is dis");
  return true;
}

void mian() {
  n = read();
  REP(i, 1, n) l[i] = read(), r[i] = read();
  disc();
  int ans = n;
  PER(i, 20, 0) if(ans > 1 << i && chk(ans - (1 << i))) {
    ans -= 1 << i;
  }
  chk(ans);
  prt(ans), pc(' '), prt(SZ(chs)), pc(' ');
  for(int x : chs) prt(nums[x - 1]), pc(" \n"[x == chs.back()]);
}

bool Med;
signed main() {
  fprintf(stderr, "(%.3lfMB used (not including static!!!))\n", (&Mbe - &Med) / 1048576.);
  // freopen("xxx.in", "r", stdin); freopen("xxx.out", "w", stdout);
  int t = 1;
  t = read();
  while(t--) mian();
  fprintf(stderr, "(%.3lfs used)\n", (db)clock() / CLOCKS_PER_SEC);
  return 0;
}

详细

Test #1:

score: 100
Accepted
time: 1ms
memory: 8540kb

input:

4
4
0 1
2 3
4 5
3 5
5
0 70
0 10
20 30
40 50
60 70
8
-1 7
-2 -1
-9 -7
-8 9
-9 -7
-2 4
-7 4
3 9
5
0 1
0 2
2 3
3 5
4 5

output:

1 3 0 2 4
4 4 0 20 40 60
2 3 -9 -2 3
2 4 0 1 3 4

result:

ok ok, tt = 4

Test #2:

score: 0
Accepted
time: 4ms
memory: 9884kb

input:

1
1
0 1

output:

1 1 0

result:

ok ok, tt = 1

Test #3:

score: 0
Accepted
time: 3ms
memory: 9924kb

input:

3
1
-1000000000 1000000000
1
-1000000000 -999999999
1
999999999 1000000000

output:

1 1 -1000000000
1 1 -1000000000
1 1 999999999

result:

ok ok, tt = 3

Test #4:

score: 0
Accepted
time: 22ms
memory: 9872kb

input:

100000
1
-755794993 -744839313
1
638832683 645984490
1
333736843 342792055
1
-412526164 -400411740
1
193156287 205856204
1
266085745 268256106
1
789502967 806620391
1
85305828 86560242
1
-655573585 -644094805
1
517734490 518776542
1
-966001098 -958188900
1
-780504491 -762439365
1
-896592598 -8804653...

output:

1 1 -755794993
1 1 638832683
1 1 333736843
1 1 -412526164
1 1 193156287
1 1 266085745
1 1 789502967
1 1 85305828
1 1 -655573585
1 1 517734490
1 1 -966001098
1 1 -780504491
1 1 -896592598
1 1 -557316732
1 1 664292314
1 1 -629158110
1 1 -202815742
1 1 -640869188
1 1 -229963066
1 1 -785668909
1 1 48944...

result:

ok ok, tt = 100000

Test #5:

score: 0
Accepted
time: 37ms
memory: 10008kb

input:

100000
1
-392749917 -319069731
1
761382535 804248178
1
-858764838 -819815600
1
-87503649 -20800126
1
-69252318 64456029
1
-848092983 -666742404
1
-659061625 -620054847
1
-982031817 -883932130
1
-47104919 97672798
1
-494834028 -456770262
1
496748206 692802903
1
572757539 669651153
1
-484466016 -41314...

output:

1 1 -392749917
1 1 761382535
1 1 -858764838
1 1 -87503649
1 1 -69252318
1 1 -848092983
1 1 -659061625
1 1 -982031817
1 1 -47104919
1 1 -494834028
1 1 496748206
1 1 572757539
1 1 -484466016
1 1 729473771
1 1 -428804236
1 1 212864606
1 1 -381428604
1 1 813986190
1 1 -573957931
1 1 -125982928
1 1 -7723...

result:

ok ok, tt = 100000

Test #6:

score: 0
Accepted
time: 44ms
memory: 9776kb

input:

100000
1
-422738609 -95619025
1
496655203 761501973
1
-253341552 895113150
1
-213934938 560617332
1
257193179 510136024
1
-684784337 -650911183
1
-999254900 62633326
1
-627557633 641989470
1
-682383675 66116491
1
-859630523 340664034
1
-422590930 433070710
1
259879968 316877801
1
-90014752 991378355...

output:

1 1 -422738609
1 1 496655203
1 1 -253341552
1 1 -213934938
1 1 257193179
1 1 -684784337
1 1 -999254900
1 1 -627557633
1 1 -682383675
1 1 -859630523
1 1 -422590930
1 1 259879968
1 1 -90014752
1 1 -789762673
1 1 -750992244
1 1 -964513526
1 1 -723869577
1 1 44144467
1 1 -550241786
1 1 386352264
1 1 757...

result:

ok ok, tt = 100000

Test #7:

score: 0
Accepted
time: 21ms
memory: 9984kb

input:

100000
1
-146170891 -135832850
1
-758721094 -739814745
1
434418655 436843128
1
584625787 597671579
1
-54920782 -48746711
1
-890924962 -874340357
1
-955254050 -945006677
1
276114326 279390556
1
-291805472 -288200984
1
673823575 685514644
1
-43237398 -31640268
1
-239622315 -224829882
1
-596965402 -595...

output:

1 1 -146170891
1 1 -758721094
1 1 434418655
1 1 584625787
1 1 -54920782
1 1 -890924962
1 1 -955254050
1 1 276114326
1 1 -291805472
1 1 673823575
1 1 -43237398
1 1 -239622315
1 1 -596965402
1 1 -902355499
1 1 262300444
1 1 -172688572
1 1 289036433
1 1 106949065
1 1 -733199280
1 1 -146867424
1 1 95061...

result:

ok ok, tt = 100000

Test #8:

score: 0
Accepted
time: 47ms
memory: 9784kb

input:

100000
1
-938525664 -817076126
1
-932701889 -823854498
1
-198817321 -90954343
1
852989237 895167117
1
-657597128 -592296022
1
-189337058 -60845257
1
-308394755 -143079067
1
-798793040 -658589397
1
587269730 632505978
1
463959892 651681553
1
210139744 354710208
1
-738322653 -579254528
1
-473167271 -4...

output:

1 1 -938525664
1 1 -932701889
1 1 -198817321
1 1 852989237
1 1 -657597128
1 1 -189337058
1 1 -308394755
1 1 -798793040
1 1 587269730
1 1 463959892
1 1 210139744
1 1 -738322653
1 1 -473167271
1 1 -719122089
1 1 -135498368
1 1 798473093
1 1 772169233
1 1 732432771
1 1 -164220287
1 1 605378245
1 1 4418...

result:

ok ok, tt = 100000

Test #9:

score: 0
Accepted
time: 42ms
memory: 10000kb

input:

100000
1
-124550996 175843021
1
-993480749 369513273
1
-472345946 866834459
1
51146719 619481540
1
-953985291 -388861986
1
30060232 86153621
1
397966610 670657620
1
228037899 527397835
1
-328812046 777147616
1
528770087 999819348
1
-443642177 430027557
1
-985366041 937429463
1
286165886 375753871
1
...

output:

1 1 -124550996
1 1 -993480749
1 1 -472345946
1 1 51146719
1 1 -953985291
1 1 30060232
1 1 397966610
1 1 228037899
1 1 -328812046
1 1 528770087
1 1 -443642177
1 1 -985366041
1 1 286165886
1 1 -553313072
1 1 -22755036
1 1 -586567462
1 1 384242088
1 1 59282828
1 1 -787530941
1 1 97548261
1 1 -858346451...

result:

ok ok, tt = 100000

Test #10:

score: -100
Wrong Answer
time: 37ms
memory: 9924kb

input:

18139
4
-336270587 -330557331
-252002330 -239258910
-186846904 -186440987
848243159 868102416
3
-195461235 -180651308
-250893512 -232183484
741194405 748153230
1
-583374820 -573301094
2
-289487516 -278362438
-617984192 -600701104
3
361103576 377771047
-629713150 -625261223
760487909 765234419
2
-789...

output:

1 4 -336270587 -252002330 -186846904 848243159
1 3 -250893512 -195461235 741194405
1 1 -583374820
1 2 -617984192 -289487516
1 3 -629713150 361103576 760487909
1 2 -789944592 -103045325
1 1 756732794
1 4 -428947266 -243873198 439377407 512729535
1 3 -832490738 -677551837 366281659
1 6 -869814878 -501...

result:

wrong answer test 12: invalid number of points: 0