QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#103569#6348. Egor Has a Problemgapinho#AC ✓274ms19032kbC++142.1kb2023-05-06 20:38:572023-05-06 20:38:57

Judging History

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

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-05-06 20:38:57]
  • 评测
  • 测评结果:AC
  • 用时:274ms
  • 内存:19032kb
  • [2023-05-06 20:38:57]
  • 提交

answer

#include <bits/stdc++.h>
#define int long long

using namespace std;

int ans[2][2];

void printAns() {
    for(int i = 0; i < 2; ++i) {
        for(int j = 0; j < 2; ++j) {
            cout << ans[i][j] + 1 << ' ';
        }
    }
    exit(0);
}

int32_t main() {
    int n;
    cin >> n;
    vector<int> a(n);
    for(int &x : a) cin >> x;
    int ans[2][2];
    int z = 0;
    for(int i = 1; i < n && z < 2; ++i) {
        if(a[i] < a[i - 1]) {
            ans[z][0] = i - 1;
            ans[z][1] = i;
            z++;
            i++;
        }
    }
    if(z == 2) {
        cout << "YES\n";
        printAns();
    }
    if(n < 1000) {
        map<int, pair<int, int>> dic;
        for(int i = 0; i < n; ++i) {
            for(int j = i + 1; j < n; ++j) {
                if(dic.count(a[j]/a[i])) {
                    cout << "YES\n";
                    auto h = dic[a[j]/a[i]];
                    cout << h.first+1 << ' ' << h.second + 1 << ' ' << i + 1 << ' ' << j + 1 << endl;
                    return 0;
                }
            }
            for(int j = 0; j < i; j++) {
                dic[a[i]/a[j]] = make_pair(j, i);
            }
        }
        cout << "NO\n";
        return 0;
    }

    cout << "YES\n";
    int quebra = 0;
    for(int i = 1; i < n; ++i) {
        if(a[i] < a[i - 1]) {
            quebra = i;
            break;
        }
    }
    vector<int> b;
    if(quebra < n / 2) {
        for(int i = quebra; i < n; ++i) {
            b.push_back(a[i]);
        }
    } else {
        for(int i = quebra - 1; i >= 0; --i) {
            b.push_back(a[i]);
        }
    }

    vector<vector<int>> bits(100, vector<int>());

    for(int i = 0; i < b.size(); ++i) {
        for(int j = 62; j >= 0; j--) {
            if(b[i] & (1ll << j)) {
                bits[j].push_back(i);
                break;
            }
        }
    }

    for(int i = 0; i < bits.size(); ++i) {
        if(bits[i].size() >= 4) {
            for(int j = 0; j < 4; ++j) {
                cout << bits[i][j] + 1 << ' ';
            }
            exit(0);
        }
    }
    assert(false);
}

详细

Test #1:

score: 100
Accepted
time: 2ms
memory: 3328kb

input:

6
2 6 11 21 47 120

output:

YES
1 3 4 6

result:

ok OK

Test #2:

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

input:

5
1 2 6 30 210

output:

NO

result:

ok OK

Test #3:

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

input:

4
7 13 77 143

output:

YES
1 2 3 4

result:

ok OK

Test #4:

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

input:

4
10 29 31 100

output:

NO

result:

ok OK

Test #5:

score: 0
Accepted
time: 257ms
memory: 17168kb

input:

500000
627045176858 4817409059014 6288122580263 11138485427254 14292718094002 14799874839768 16926890883539 17617152313162 17645472255619 18208915248631 22963632241827 24466999302606 25551903318615 26091633648017 38200644379849 39885775205129 40036378248650 40309675851194 40773414900416 408933438176...

output:

YES
4 5 6 7 

result:

ok OK

Test #6:

score: 0
Accepted
time: 248ms
memory: 17172kb

input:

500000
4296317198460 9088530306835 12761569474357 16261038279090 16941085611205 18350614838717 22480413215272 23329628179141 24312311764761 24433929342173 27221427530427 28176763451413 28796907935821 30472998712185 32522454545697 33716639435084 36803789739537 36820525380957 39761789956892 4078696306...

output:

YES
2 3 4 5 

result:

ok OK

Test #7:

score: 0
Accepted
time: 248ms
memory: 17236kb

input:

500000
2486629253945 2653364744556 4284488165789 4329370039939 4642065503681 6901749347495 19192137130640 21230142707219 21572527039148 22380596790669 24549580468932 24705234465366 24809017205084 25372640950744 30936948747149 31605133106641 35382503368540 36668459004194 39297585189262 40441705410326...

output:

YES
1 2 3 4 

result:

ok OK

Test #8:

score: 0
Accepted
time: 256ms
memory: 17204kb

input:

500000
1212707463644 3060808785468 5253681005592 6636218910647 8688761397981 9169130038833 9604296507161 10581672897486 14606712594653 18215478522408 19985113657583 21876858531698 22009681507073 25744252327149 29854713235059 30049643326503 35465827651805 38437058489989 40205415453241 42389564776077 ...

output:

YES
6 7 8 9 

result:

ok OK

Test #9:

score: 0
Accepted
time: 274ms
memory: 17444kb

input:

500000
1 999999999999500002 999999999999500003 999999999999500004 999999999999500005 999999999999500006 999999999999500007 999999999999500008 999999999999500009 999999999999500010 999999999999500011 999999999999500012 999999999999500013 999999999999500014 999999999999500015 999999999999500016 999999...

output:

YES
2 3 4 5 

result:

ok OK

Test #10:

score: 0
Accepted
time: 268ms
memory: 17964kb

input:

500000
2 999999999999500002 999999999999500003 999999999999500004 999999999999500005 999999999999500006 999999999999500007 999999999999500008 999999999999500009 999999999999500010 999999999999500011 999999999999500012 999999999999500013 999999999999500014 999999999999500015 999999999999500016 999999...

output:

YES
2 3 4 5 

result:

ok OK

Test #11:

score: 0
Accepted
time: 246ms
memory: 17680kb

input:

500000
3 999999999999500002 999999999999500003 999999999999500004 999999999999500005 999999999999500006 999999999999500007 999999999999500008 999999999999500009 999999999999500010 999999999999500011 999999999999500012 999999999999500013 999999999999500014 999999999999500015 999999999999500016 999999...

output:

YES
2 3 4 5 

result:

ok OK

Test #12:

score: 0
Accepted
time: 256ms
memory: 18700kb

input:

500000
4 999999999999500002 999999999999500003 999999999999500004 999999999999500005 999999999999500006 999999999999500007 999999999999500008 999999999999500009 999999999999500010 999999999999500011 999999999999500012 999999999999500013 999999999999500014 999999999999500015 999999999999500016 999999...

output:

YES
2 3 4 5 

result:

ok OK

Test #13:

score: 0
Accepted
time: 250ms
memory: 19032kb

input:

500000
1 399999999999500002 399999999999500003 399999999999500004 399999999999500005 399999999999500006 399999999999500007 399999999999500008 399999999999500009 399999999999500010 399999999999500011 399999999999500012 399999999999500013 399999999999500014 399999999999500015 399999999999500016 399999...

output:

YES
2 3 4 5 

result:

ok OK

Test #14:

score: 0
Accepted
time: 253ms
memory: 18288kb

input:

500000
2 399999999999500002 399999999999500003 399999999999500004 399999999999500005 399999999999500006 399999999999500007 399999999999500008 399999999999500009 399999999999500010 399999999999500011 399999999999500012 399999999999500013 399999999999500014 399999999999500015 399999999999500016 399999...

output:

YES
2 3 4 5 

result:

ok OK

Test #15:

score: 0
Accepted
time: 247ms
memory: 17880kb

input:

500000
3 399999999999500002 399999999999500003 399999999999500004 399999999999500005 399999999999500006 399999999999500007 399999999999500008 399999999999500009 399999999999500010 399999999999500011 399999999999500012 399999999999500013 399999999999500014 399999999999500015 399999999999500016 399999...

output:

YES
2 3 4 5 

result:

ok OK

Test #16:

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

input:

10
1 2 3 9 36 360 13320 4808520 64054294920 308006422263013320

output:

NO

result:

ok OK

Test #17:

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

input:

9
1 2 3 9 36 360 13320 4808520 64054294920

output:

NO

result:

ok OK

Test #18:

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

input:

10
3861348309891 127439409255713 551948644892279 2552834525268279 19417204359723670 102703824912373168 336410714638229509 857014049592511384 918060937762570344 992825966112149288

output:

NO

result:

ok OK

Test #19:

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

input:

10
374432361454 3518670391085 108003930276680 1335172630640345 8456849498329971 36786273792403923 120085800577991088 318281777133095838 383067822022773917 697280279299110793

output:

NO

result:

ok OK

Test #20:

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

input:

11
903698880731 8661804054951 46413148737609 2047329226174757 6320772683571604 21145056521166311 53518443870119450 151094208662606815 620225829430430781 643358709747358736 987761154108547529

output:

NO

result:

ok OK

Test #21:

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

input:

16
1 2 6 30 210 2310 30030 510510 9699690 223092870 6469693230 200560490130 7420738134810 304250263527210 13082761331670030 614889782588491410

output:

NO

result:

ok OK

Test #22:

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

input:

23
1 2 4 32 256 3328 43264 129792 389376 2336256 14017536 70087680 350438400 3504384000 35043840000 245306880000 1717148160000 24040074240000 336561039360000 3702171432960000 40723885762560000 692306057963520000 692306057963520001

output:

NO

result:

ok OK

Test #23:

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

input:

24
1 2 4 32 256 3328 43264 129792 389376 2336256 14017536 70087680 350438400 3504384000 35043840000 245306880000 1717148160000 24040074240000 336561039360000 3702171432960000 40723885762560000 692306057963520000 692306057963520001 692306057963520002

output:

NO

result:

ok OK

Test #24:

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

input:

25
1 2 4 32 256 3328 43264 129792 389376 2336256 14017536 70087680 350438400 3504384000 35043840000 245306880000 1717148160000 24040074240000 336561039360000 3702171432960000 40723885762560000 692306057963520000 692306057963520001 692306057963520002 692306057963520003

output:

YES
22 23 24 25

result:

ok OK

Test #25:

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

input:

26
1 2 4 32 256 3328 43264 129792 389376 2336256 14017536 70087680 350438400 3504384000 35043840000 245306880000 1717148160000 24040074240000 336561039360000 3702171432960000 40723885762560000 692306057963520000 692306057963520001 692306057963520002 692306057963520003 692306057963520004

output:

YES
22 23 24 25

result:

ok OK

Test #26:

score: 0
Accepted
time: 242ms
memory: 17416kb

input:

500000
1 2 4 32 256 3328 43264 129792 389376 2336256 14017536 70087680 350438400 3504384000 35043840000 245306880000 1717148160000 24040074240000 336561039360000 3702171432960000 40723885762560000 692306057963520000 692306057963520001 692306057963520002 692306057963520003 692306057963520004 69230605...

output:

YES
22 23 24 25 

result:

ok OK

Test #27:

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

input:

6
20122422218883239 56278710347381443 247237730275417133 286111661631847944 354848159244882586 964700009339386544

output:

YES
1 2 5 6

result:

ok OK

Test #28:

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

input:

8
390276856793488 1152876923982673 6982441155075473 26146320000665894 45310164832331696 87593483686155752 366720093455746367 863464306708560705

output:

YES
1 2 7 8

result:

ok OK

Test #29:

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

input:

9
61307755780486 129326614955470 1118666378585854 9719828040294917 48313589660444318 242156755123277778 312272361787807645 339925101639750428 941720167539522416

output:

YES
1 2 8 9

result:

ok OK

Test #30:

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

input:

25
1 2 4 32 256 3328 43264 129792 389376 2336256 14017536 70087680 350438400 3504384000 35043840000 245306880000 1717148160000 24040074240000 336561039360000 3702171432960000 40723885762560000 488686629150720000 488686629150720001 488686629150720002 977373258301440004

output:

YES
2 3 22 25

result:

ok OK

Test #31:

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

input:

25
1 2 4 32 256 3328 43264 129792 389376 2336256 14017536 70087680 350438400 3504384000 35043840000 245306880000 1717148160000 24040074240000 336561039360000 3702171432960000 40723885762560000 40723885762560001 40723885762560002 488686629150720024 977373258301440048

output:

YES
2 3 24 25

result:

ok OK

Test #32:

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

input:

16
1 2 4 32 256 768 2304 13824 82944 414720 2073600 14515200 101606400 101606401 101606402 10323860825779202

output:

YES
1 14 15 16

result:

ok OK

Test #33:

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

input:

16
1 101606400 101606401 101606402 203212804 406425608 3251404864 26011238912 78033716736 234101150208 1404606901248 8427641407488 42138207037440 210691035187200 1474837246310400 10323860724172800

output:

YES
1 2 3 16

result:

ok OK