QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#357453#403. Memory2KrzychXyz100 ✓1ms3856kbC++232.5kb2024-03-18 21:24:002024-03-18 21:24:00

Judging History

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

  • [2024-03-18 21:24:00]
  • 评测
  • 测评结果:100
  • 用时:1ms
  • 内存:3856kb
  • [2024-03-18 21:24:00]
  • 提交

answer

#include <bits/stdc++.h>
#include "Memory2_lib.h"
using namespace std;
void Solve(int T, int N) {
    pair <int,int> wartosci[2*N + 2];
    int i = 0;
    int j = 1;
    int k = 2;
    int ans1 = 0;
    int ans2 = 0;
    int carryover = Flip(i,j);
    for(;k < 2*N; k++) {
        ans1 = Flip(i,k);
        ans2 = Flip(j,k);
        if(ans1 == ans2 && ans1 == carryover) {
            //cout << k << "\n";
            int kbis = k;
            k++;
            for(;k < 2*N;k++) {
                ans1 = Flip(i,k);
                ans2 = Flip(j,k);
                //cout << ans1 << " " << ans2 << '\n';
                if(ans1 == carryover && ans2 != carryover) {
                    wartosci[i] = {ans1,i};
                    i=j;
                    j=kbis;
                    break;
                }
                else if(ans2 == carryover && ans1 != carryover) {
                    wartosci[j] = {ans2,j};
                    j=kbis;
                    break;
                }
                else if(ans1 == ans2 && carryover != ans1){
                    wartosci[k] = {ans1,k};
                }
                else {
                    //cout <<k << "\n";
                    wartosci[i] = {carryover,i};
                    wartosci[j] = {carryover,j};
                    i = kbis;
                    j = k;
                    //carryover = Flip(i,j);
                    ans1 = -1;
                    ans2 = -2;
                    k++;
                    break;
                }
            }
            carryover = Flip(i,j);
            if(k < 2*N) {
                ans1 = Flip(i,k);
                ans2 = Flip(j,k);
            }
        }
        if(k==2*N) break;
        if(ans1 == carryover && ans2 != carryover) {
            wartosci[i] = {ans1,i};
            carryover = ans2;
            i=j;
            j=k;
        }
        else if(ans2 == carryover && ans1 != carryover) {
            wartosci[j] = {ans2,j};
            carryover = ans1;
            j=k;
        }
        else if(ans1 == ans2 && carryover != ans1){
            wartosci[k] = {ans1,k};
        }
    }
    wartosci[i] = {carryover, i};
    wartosci[j] = {carryover, j};
    /*for(int i = 0; i < 2*N; i++) {
        cout << wartosci[i].first << " " << wartosci[i].second << "\n";
    }*/
    sort(wartosci, wartosci+2*N);
    for(int i = 0 ; i < 2*N; i+=2) {
        //cout << i << "\n";
        Answer(wartosci[i].second, wartosci[i+1].second, wartosci[i].first);
    }
}

Details

Subtask #1:

score: 10
Accepted

Test #1:

score: 10
Accepted
time: 1ms
memory: 3732kb

Test #2:

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

Test #3:

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

Test #4:

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

Test #5:

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

Test #6:

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

Test #7:

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

Test #8:

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

Subtask #2:

score: 50
Accepted

Test #9:

score: 50
Accepted
time: 1ms
memory: 3724kb

Test #10:

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

Test #11:

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

Test #12:

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

Test #13:

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

Test #14:

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

Test #15:

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

Test #16:

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

Test #17:

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

Test #18:

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

Subtask #3:

score: 40
Accepted

Test #19:

score: 40
Accepted
time: 0ms
memory: 3816kb

Test #20:

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

Test #21:

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

Test #22:

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

Test #23:

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

Test #24:

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

Test #25:

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

Test #26:

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

Test #27:

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

Test #28:

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

Extra Test:

score: 0
Extra Test Passed