QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#366881#8508. DiviDuelohos_lyricAC ✓3ms3964kbC++142.9kb2024-03-25 13:26:102024-03-25 13:26:11

Judging History

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

  • [2024-03-25 13:26:11]
  • 评测
  • 测评结果:AC
  • 用时:3ms
  • 内存:3964kb
  • [2024-03-25 13:26:10]
  • 提交

answer

#include <cassert>
#include <cmath>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <bitset>
#include <complex>
#include <deque>
#include <functional>
#include <iostream>
#include <limits>
#include <map>
#include <numeric>
#include <queue>
#include <random>
#include <set>
#include <sstream>
#include <string>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>

using namespace std;

using Int = long long;

template <class T1, class T2> ostream &operator<<(ostream &os, const pair<T1, T2> &a) { return os << "(" << a.first << ", " << a.second << ")"; };
template <class T> ostream &operator<<(ostream &os, const vector<T> &as) { const int sz = as.size(); os << "["; for (int i = 0; i < sz; ++i) { if (i >= 256) { os << ", ..."; break; } if (i > 0) { os << ", "; } os << as[i]; } return os << "]"; }
template <class T> void pv(T a, T b) { for (T i = a; i != b; ++i) cerr << *i << " "; cerr << endl; }
template <class T> bool chmin(T &t, const T &f) { if (t > f) { t = f; return true; } return false; }
template <class T> bool chmax(T &t, const T &f) { if (t < f) { t = f; return true; } return false; }
#define COLOR(s) ("\x1b[" s "m")


bool solve(Int N) {
  vector<int> es;
  Int n = N;
  for (Int p = 2; p*p <= n; ++p) if (n % p == 0) {
    int e = 0;
    do { ++e; n /= p; } while (n % p == 0);
    es.push_back(e);
  }
  if (n > 1) es.push_back(1);
  if (es.size() == 1 && es[0] % 2 != 0) return true;
  if (es.size() == 2 && es[0] == 1 && es[1] == 1) return true;
  return false;
}


namespace exper {
int N;
int dsLen;
vector<int> ds;

map<pair<int, int>, int> cache[2];
int calc(int turn, int alice, int rem) {
  const pair<int, int> key(alice, rem);
  auto it = cache[turn].find(key);
  if (it != cache[turn].end()) return it->second;
  int ret = 0;
  
  if (rem) {
    for (int i = 0; i < dsLen; ++i) if (rem & 1 << i) {
      if (!calc(turn ^ 1, turn ? (alice | 1 << i) : alice, rem ^ 1 << i)) {
        ret = 1;
      }
    }
  } else {
    int g = 0;
    for (int i = 0; i < dsLen; ++i) if (alice & 1 << i) {
      g = __gcd(g, ds[i]);
    }
    ret = turn ? (g != 1) : (g == 1);
  }
  
  return cache[turn][key] = ret;
}
void run() {
  for (N = 1; N < 120; ++N) {
    ds.clear();
    for (int d = 1; d <= N; ++d) if (N % d == 0) ds.push_back(d);
    dsLen = ds.size();
    assert(dsLen <= 16);
    for (int turn = 0; turn < 2; ++turn) cache[turn].clear();
    const bool brt = calc(1, 0, (1 << dsLen) - 1);
    const bool slv = solve(N);
    if (brt || brt != slv) {
      cerr << N << " " << ds << ": " << brt << " " << slv << endl;
    }
    assert(brt == slv);
  }
}
}  // exper


int main() {
  // exper::run();
  
  Int N;
  for (; ~scanf("%lld", &N); ) {
    const bool ans = solve(N);
    puts(ans ? "Y" : "N");
  }
  return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3580kb

input:

10

output:

Y

result:

ok "Y"

Test #2:

score: 0
Accepted
time: 0ms
memory: 3932kb

input:

9

output:

N

result:

ok "N"

Test #3:

score: 0
Accepted
time: 0ms
memory: 3928kb

input:

1

output:

N

result:

ok "N"

Test #4:

score: 0
Accepted
time: 0ms
memory: 3664kb

input:

549755813888

output:

Y

result:

ok "Y"

Test #5:

score: 0
Accepted
time: 0ms
memory: 3624kb

input:

274877906944

output:

N

result:

ok "N"

Test #6:

score: 0
Accepted
time: 0ms
memory: 3736kb

input:

847288609443

output:

Y

result:

ok "Y"

Test #7:

score: 0
Accepted
time: 0ms
memory: 3588kb

input:

282429536481

output:

N

result:

ok "N"

Test #8:

score: 0
Accepted
time: 0ms
memory: 3684kb

input:

137858491849

output:

N

result:

ok "N"

Test #9:

score: 0
Accepted
time: 0ms
memory: 3652kb

input:

10604499373

output:

Y

result:

ok "Y"

Test #10:

score: 0
Accepted
time: 0ms
memory: 3728kb

input:

506623120463

output:

Y

result:

ok "Y"

Test #11:

score: 0
Accepted
time: 0ms
memory: 3928kb

input:

10779215329

output:

N

result:

ok "N"

Test #12:

score: 0
Accepted
time: 1ms
memory: 3920kb

input:

41910794561

output:

Y

result:

ok "Y"

Test #13:

score: 0
Accepted
time: 1ms
memory: 3632kb

input:

64574155417

output:

Y

result:

ok "Y"

Test #14:

score: 0
Accepted
time: 1ms
memory: 3924kb

input:

75644818241

output:

Y

result:

ok "Y"

Test #15:

score: 0
Accepted
time: 0ms
memory: 3700kb

input:

124029899611

output:

Y

result:

ok "Y"

Test #16:

score: 0
Accepted
time: 1ms
memory: 3620kb

input:

134306640043

output:

Y

result:

ok "Y"

Test #17:

score: 0
Accepted
time: 0ms
memory: 3924kb

input:

146462570411

output:

Y

result:

ok "Y"

Test #18:

score: 0
Accepted
time: 2ms
memory: 3620kb

input:

222287988673

output:

Y

result:

ok "Y"

Test #19:

score: 0
Accepted
time: 2ms
memory: 3668kb

input:

263345887171

output:

Y

result:

ok "Y"

Test #20:

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

input:

717451682557

output:

Y

result:

ok "Y"

Test #21:

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

input:

825365364157

output:

Y

result:

ok "Y"

Test #22:

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

input:

870298842859

output:

Y

result:

ok "Y"

Test #23:

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

input:

887915259331

output:

Y

result:

ok "Y"

Test #24:

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

input:

967108197509

output:

Y

result:

ok "Y"

Test #25:

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

input:

990661375799

output:

Y

result:

ok "Y"

Test #26:

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

input:

999999999989

output:

Y

result:

ok "Y"

Test #27:

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

input:

999962000357

output:

Y

result:

ok "Y"

Test #28:

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

input:

999474022513

output:

Y

result:

ok "Y"

Test #29:

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

input:

999052035451

output:

Y

result:

ok "Y"

Test #30:

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

input:

999470040641

output:

Y

result:

ok "Y"

Test #31:

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

input:

998712349711

output:

Y

result:

ok "Y"

Test #32:

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

input:

998768376647

output:

Y

result:

ok "Y"

Test #33:

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

input:

998884311283

output:

Y

result:

ok "Y"

Test #34:

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

input:

998794254709

output:

Y

result:

ok "Y"

Test #35:

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

input:

998830303021

output:

Y

result:

ok "Y"

Test #36:

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

input:

999638023157

output:

Y

result:

ok "Y"

Test #37:

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

input:

998978227997

output:

Y

result:

ok "Y"

Test #38:

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

input:

999108034891

output:

Y

result:

ok "Y"

Test #39:

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

input:

998922289621

output:

Y

result:

ok "Y"

Test #40:

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

input:

999172169371

output:

Y

result:

ok "Y"

Test #41:

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

input:

999218015981

output:

Y

result:

ok "Y"

Test #42:

score: 0
Accepted
time: 0ms
memory: 3700kb

input:

981700934653

output:

N

result:

ok "N"

Test #43:

score: 0
Accepted
time: 0ms
memory: 3932kb

input:

942804229201

output:

N

result:

ok "N"

Test #44:

score: 0
Accepted
time: 0ms
memory: 3944kb

input:

822635014967

output:

N

result:

ok "N"

Test #45:

score: 0
Accepted
time: 0ms
memory: 3636kb

input:

954312321917

output:

N

result:

ok "N"

Test #46:

score: 0
Accepted
time: 0ms
memory: 3736kb

input:

965687001953

output:

N

result:

ok "N"

Test #47:

score: 0
Accepted
time: 0ms
memory: 3704kb

input:

907803030577

output:

N

result:

ok "N"

Test #48:

score: 0
Accepted
time: 0ms
memory: 3732kb

input:

993916557163

output:

N

result:

ok "N"

Test #49:

score: 0
Accepted
time: 0ms
memory: 3740kb

input:

844029771131

output:

N

result:

ok "N"

Test #50:

score: 0
Accepted
time: 0ms
memory: 3640kb

input:

862969367597

output:

N

result:

ok "N"

Test #51:

score: 0
Accepted
time: 0ms
memory: 3684kb

input:

768706748179

output:

N

result:

ok "N"

Test #52:

score: 0
Accepted
time: 0ms
memory: 3656kb

input:

744412255649

output:

N

result:

ok "N"

Test #53:

score: 0
Accepted
time: 0ms
memory: 3736kb

input:

877760921347

output:

N

result:

ok "N"

Test #54:

score: 0
Accepted
time: 0ms
memory: 3696kb

input:

779321766481

output:

N

result:

ok "N"

Test #55:

score: 0
Accepted
time: 0ms
memory: 3736kb

input:

786676948027

output:

N

result:

ok "N"

Test #56:

score: 0
Accepted
time: 0ms
memory: 3668kb

input:

775686765629

output:

N

result:

ok "N"

Test #57:

score: 0
Accepted
time: 0ms
memory: 3744kb

input:

971230541

output:

N

result:

ok "N"

Test #58:

score: 0
Accepted
time: 0ms
memory: 3700kb

input:

2385673

output:

N

result:

ok "N"

Test #59:

score: 0
Accepted
time: 0ms
memory: 3736kb

input:

52468711

output:

N

result:

ok "N"

Test #60:

score: 0
Accepted
time: 0ms
memory: 3928kb

input:

20358337

output:

N

result:

ok "N"

Test #61:

score: 0
Accepted
time: 0ms
memory: 3720kb

input:

9186689

output:

N

result:

ok "N"

Test #62:

score: 0
Accepted
time: 0ms
memory: 3684kb

input:

106251

output:

N

result:

ok "N"

Test #63:

score: 0
Accepted
time: 0ms
memory: 3736kb

input:

2859061

output:

N

result:

ok "N"

Test #64:

score: 0
Accepted
time: 0ms
memory: 3704kb

input:

51455519

output:

N

result:

ok "N"

Test #65:

score: 0
Accepted
time: 0ms
memory: 3696kb

input:

68063771

output:

N

result:

ok "N"

Test #66:

score: 0
Accepted
time: 0ms
memory: 3736kb

input:

44480353

output:

N

result:

ok "N"

Test #67:

score: 0
Accepted
time: 0ms
memory: 3680kb

input:

445130407

output:

N

result:

ok "N"

Test #68:

score: 0
Accepted
time: 0ms
memory: 3640kb

input:

54924301

output:

N

result:

ok "N"

Test #69:

score: 0
Accepted
time: 0ms
memory: 3916kb

input:

251377811

output:

N

result:

ok "N"

Test #70:

score: 0
Accepted
time: 1ms
memory: 3676kb

input:

11583287

output:

N

result:

ok "N"

Test #71:

score: 0
Accepted
time: 0ms
memory: 3740kb

input:

164689969

output:

N

result:

ok "N"

Test #72:

score: 0
Accepted
time: 0ms
memory: 3636kb

input:

220388553874

output:

N

result:

ok "N"

Test #73:

score: 0
Accepted
time: 0ms
memory: 3724kb

input:

337917710393

output:

N

result:

ok "N"

Test #74:

score: 0
Accepted
time: 0ms
memory: 3736kb

input:

484109724475

output:

N

result:

ok "N"

Test #75:

score: 0
Accepted
time: 0ms
memory: 3660kb

input:

494253368469

output:

N

result:

ok "N"

Test #76:

score: 0
Accepted
time: 0ms
memory: 3960kb

input:

790636814905

output:

N

result:

ok "N"

Test #77:

score: 0
Accepted
time: 1ms
memory: 3924kb

input:

593466711078

output:

N

result:

ok "N"

Test #78:

score: 0
Accepted
time: 0ms
memory: 3660kb

input:

701257784810

output:

N

result:

ok "N"

Test #79:

score: 0
Accepted
time: 0ms
memory: 3736kb

input:

821468484315

output:

N

result:

ok "N"

Test #80:

score: 0
Accepted
time: 0ms
memory: 3636kb

input:

321582188478

output:

N

result:

ok "N"

Test #81:

score: 0
Accepted
time: 0ms
memory: 3720kb

input:

623403649385

output:

N

result:

ok "N"

Test #82:

score: 0
Accepted
time: 0ms
memory: 3740kb

input:

172509105650

output:

N

result:

ok "N"

Test #83:

score: 0
Accepted
time: 0ms
memory: 3660kb

input:

579709456395

output:

N

result:

ok "N"

Test #84:

score: 0
Accepted
time: 0ms
memory: 3720kb

input:

703541153630

output:

N

result:

ok "N"

Test #85:

score: 0
Accepted
time: 0ms
memory: 3660kb

input:

371717528455

output:

N

result:

ok "N"

Test #86:

score: 0
Accepted
time: 0ms
memory: 3664kb

input:

925436174850

output:

N

result:

ok "N"

Test #87:

score: 0
Accepted
time: 2ms
memory: 3964kb

input:

441602590298

output:

N

result:

ok "N"

Test #88:

score: 0
Accepted
time: 2ms
memory: 3680kb

input:

663345923451

output:

N

result:

ok "N"

Test #89:

score: 0
Accepted
time: 2ms
memory: 3620kb

input:

662812798173

output:

N

result:

ok "N"

Test #90:

score: 0
Accepted
time: 2ms
memory: 3688kb

input:

662615302233

output:

N

result:

ok "N"

Test #91:

score: 0
Accepted
time: 2ms
memory: 3696kb

input:

663436223391

output:

N

result:

ok "N"

Test #92:

score: 0
Accepted
time: 2ms
memory: 3736kb

input:

662248872237

output:

N

result:

ok "N"

Test #93:

score: 0
Accepted
time: 2ms
memory: 3696kb

input:

662516706867

output:

N

result:

ok "N"

Test #94:

score: 0
Accepted
time: 0ms
memory: 3616kb

input:

864077614394

output:

N

result:

ok "N"

Test #95:

score: 0
Accepted
time: 0ms
memory: 3736kb

input:

977802486226

output:

N

result:

ok "N"

Test #96:

score: 0
Accepted
time: 0ms
memory: 3620kb

input:

647426786602

output:

N

result:

ok "N"

Test #97:

score: 0
Accepted
time: 0ms
memory: 3960kb

input:

901679277046

output:

N

result:

ok "N"

Test #98:

score: 0
Accepted
time: 0ms
memory: 3732kb

input:

642523777682

output:

N

result:

ok "N"

Test #99:

score: 0
Accepted
time: 0ms
memory: 3684kb

input:

871506220334

output:

N

result:

ok "N"

Test #100:

score: 0
Accepted
time: 0ms
memory: 3740kb

input:

950098378534

output:

N

result:

ok "N"

Test #101:

score: 0
Accepted
time: 0ms
memory: 3732kb

input:

660409283986

output:

N

result:

ok "N"

Test #102:

score: 0
Accepted
time: 0ms
memory: 3636kb

input:

819550638458

output:

N

result:

ok "N"

Test #103:

score: 0
Accepted
time: 0ms
memory: 3592kb

input:

846693913942

output:

N

result:

ok "N"

Test #104:

score: 0
Accepted
time: 0ms
memory: 3680kb

input:

630683996246

output:

N

result:

ok "N"

Test #105:

score: 0
Accepted
time: 0ms
memory: 3684kb

input:

698348891974

output:

N

result:

ok "N"

Test #106:

score: 0
Accepted
time: 0ms
memory: 3640kb

input:

794129725534

output:

N

result:

ok "N"

Test #107:

score: 0
Accepted
time: 0ms
memory: 3740kb

input:

731864249762

output:

N

result:

ok "N"

Test #108:

score: 0
Accepted
time: 0ms
memory: 3684kb

input:

758461160882

output:

N

result:

ok "N"

Test #109:

score: 0
Accepted
time: 0ms
memory: 3736kb

input:

200560490130

output:

N

result:

ok "N"

Test #110:

score: 0
Accepted
time: 0ms
memory: 3732kb

input:

132843110400

output:

N

result:

ok "N"

Test #111:

score: 0
Accepted
time: 0ms
memory: 3652kb

input:

700131600000

output:

N

result:

ok "N"

Test #112:

score: 0
Accepted
time: 0ms
memory: 3616kb

input:

755827200000

output:

N

result:

ok "N"

Test #113:

score: 0
Accepted
time: 0ms
memory: 3616kb

input:

3368254499

output:

Y

result:

ok "Y"

Test #114:

score: 0
Accepted
time: 0ms
memory: 3684kb

input:

338171833063

output:

Y

result:

ok "Y"

Test #115:

score: 0
Accepted
time: 0ms
memory: 3620kb

input:

182187833309

output:

Y

result:

ok "Y"

Test #116:

score: 0
Accepted
time: 0ms
memory: 3688kb

input:

207790265467

output:

Y

result:

ok "Y"

Test #117:

score: 0
Accepted
time: 0ms
memory: 3620kb

input:

101847563

output:

Y

result:

ok "Y"

Test #118:

score: 0
Accepted
time: 0ms
memory: 3652kb

input:

32187778741

output:

Y

result:

ok "Y"

Test #119:

score: 0
Accepted
time: 0ms
memory: 3680kb

input:

50284268371

output:

Y

result:

ok "Y"

Test #120:

score: 0
Accepted
time: 0ms
memory: 3684kb

input:

237176659

output:

Y

result:

ok "Y"

Test #121:

score: 0
Accepted
time: 0ms
memory: 3592kb

input:

6570725617

output:

Y

result:

ok "Y"

Test #122:

score: 0
Accepted
time: 0ms
memory: 3656kb

input:

11194326053

output:

Y

result:

ok "Y"

Test #123:

score: 0
Accepted
time: 0ms
memory: 3624kb

input:

288804781

output:

Y

result:

ok "Y"

Test #124:

score: 0
Accepted
time: 0ms
memory: 3912kb

input:

683099533943

output:

Y

result:

ok "Y"

Test #125:

score: 0
Accepted
time: 0ms
memory: 3616kb

input:

77909194511

output:

Y

result:

ok "Y"

Test #126:

score: 0
Accepted
time: 0ms
memory: 3656kb

input:

633839779

output:

Y

result:

ok "Y"

Test #127:

score: 0
Accepted
time: 0ms
memory: 3640kb

input:

49714249733

output:

Y

result:

ok "Y"

Test #128:

score: 0
Accepted
time: 1ms
memory: 3696kb

input:

60781478521

output:

N

result:

ok "N"

Test #129:

score: 0
Accepted
time: 1ms
memory: 3652kb

input:

6340459129

output:

N

result:

ok "N"

Test #130:

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

input:

582784140409

output:

N

result:

ok "N"

Test #131:

score: 0
Accepted
time: 0ms
memory: 3664kb

input:

106704795649

output:

N

result:

ok "N"

Test #132:

score: 0
Accepted
time: 2ms
memory: 3620kb

input:

364295537761

output:

N

result:

ok "N"

Test #133:

score: 0
Accepted
time: 1ms
memory: 3592kb

input:

48194738089

output:

N

result:

ok "N"

Test #134:

score: 0
Accepted
time: 2ms
memory: 3732kb

input:

534067178401

output:

N

result:

ok "N"

Test #135:

score: 0
Accepted
time: 2ms
memory: 3732kb

input:

266490315529

output:

N

result:

ok "N"

Test #136:

score: 0
Accepted
time: 1ms
memory: 3688kb

input:

41293897681

output:

N

result:

ok "N"

Test #137:

score: 0
Accepted
time: 2ms
memory: 3684kb

input:

405579196201

output:

N

result:

ok "N"

Test #138:

score: 0
Accepted
time: 1ms
memory: 3660kb

input:

7659225289

output:

N

result:

ok "N"

Test #139:

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

input:

650447089009

output:

N

result:

ok "N"

Test #140:

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

input:

856407728929

output:

N

result:

ok "N"

Test #141:

score: 0
Accepted
time: 2ms
memory: 3684kb

input:

536053872649

output:

N

result:

ok "N"

Test #142:

score: 0
Accepted
time: 1ms
memory: 3736kb

input:

48390760441

output:

N

result:

ok "N"

Extra Test:

score: 0
Extra Test Passed