QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#357139 | #403. Memory2 | user1234 | 100 ✓ | 1ms | 3856kb | C++14 | 2.7kb | 2024-03-18 18:42:00 | 2024-03-18 18:42:01 |
Judging History
answer
#include <bits/stdc++.h>
#include "Memory2_lib.h"
using namespace std;
short jaka_liczba[100];
short numery[3];
short wynik01, wynik02, wynik12, wynikczekajacy;
short czekajacy_numer;
vector <short> odpowiedzi[50];
void sprawdz_numer(short x) {
numery[2] = x;
wynik02 = Flip(numery[0], x);
wynik12 = Flip(numery[1], x);
if (czekajacy_numer == -1) {
if (wynik01 == wynik02 && wynik01 != wynik12) {
jaka_liczba[numery[0]] = wynik01;
swap(numery[0], numery[2]);
swap(wynik01, wynik12);
return;
}
if (wynik12 == wynik02 && wynik02 != wynik01) {
jaka_liczba[numery[2]] = wynik12;
return;
}
if (wynik01 == wynik12 && wynik01 != wynik02) {
jaka_liczba[numery[1]] = wynik01;
swap(numery[1], numery[2]);
swap(wynik01, wynik02);
return;
}
wynikczekajacy = wynik02;
czekajacy_numer = numery[2];
return;
}
if (wynik01 == wynik02 && wynik01 != wynik12) {
if (wynik01 == wynikczekajacy) {
jaka_liczba[czekajacy_numer] = wynikczekajacy;
czekajacy_numer = -1;
}
jaka_liczba[numery[0]] = wynik01;
swap(numery[0], numery[2]);
swap(wynik01, wynik12);
return;
}
if (wynik12 == wynik02 && wynik02 != wynik01) {
if (wynik12 == wynikczekajacy) {
jaka_liczba[czekajacy_numer] = wynikczekajacy;
czekajacy_numer = -1;
}
jaka_liczba[numery[2]] = wynik12;
return;
}
if (wynik01 == wynik12 && wynik01 != wynik02) {
if (wynik12 == wynikczekajacy) {
jaka_liczba[czekajacy_numer] = wynikczekajacy;
czekajacy_numer = -1;
}
jaka_liczba[numery[1]] = wynik01;
swap(numery[1], numery[2]);
swap(wynik01, wynik02);
return;
}
jaka_liczba[numery[0]] = wynikczekajacy;
jaka_liczba[numery[1]] = wynikczekajacy;
numery[1] = numery[2];
numery[0] = czekajacy_numer;
wynik01 = Flip(numery[0], numery[1]);
czekajacy_numer = -1;
}
void Solve(int T, int N){
if (N == 1) {
Answer(0, 1, 0);
return;
}
czekajacy_numer = -1;
numery[0] = 0; numery[1] = 1;
wynik01 = Flip(0, 1);
czekajacy_numer = -1;
for (short i = 2; i < 2 * N; i++) sprawdz_numer(i);
jaka_liczba[numery[0]] = wynik01;
jaka_liczba[numery[1]] = wynik01;
for (short i = 0; i < 2 * N; i++) {
odpowiedzi[jaka_liczba[i]].push_back(i);
}
for (short i = 0; i < N; i++) {
Answer(odpowiedzi[i][0], odpowiedzi[i][1], i);
}
return;
}
Details
Subtask #1:
score: 10
Accepted
Test #1:
score: 10
Accepted
time: 0ms
memory: 3780kb
Test #2:
score: 0
Accepted
time: 1ms
memory: 3852kb
Test #3:
score: 0
Accepted
time: 0ms
memory: 3736kb
Test #4:
score: 0
Accepted
time: 0ms
memory: 3736kb
Test #5:
score: 0
Accepted
time: 0ms
memory: 3784kb
Test #6:
score: 0
Accepted
time: 0ms
memory: 3776kb
Test #7:
score: 0
Accepted
time: 0ms
memory: 3856kb
Test #8:
score: 0
Accepted
time: 0ms
memory: 3836kb
Subtask #2:
score: 50
Accepted
Test #9:
score: 50
Accepted
time: 1ms
memory: 3780kb
Test #10:
score: 0
Accepted
time: 0ms
memory: 3780kb
Test #11:
score: 0
Accepted
time: 1ms
memory: 3780kb
Test #12:
score: 0
Accepted
time: 1ms
memory: 3848kb
Test #13:
score: 0
Accepted
time: 0ms
memory: 3804kb
Test #14:
score: 0
Accepted
time: 0ms
memory: 3820kb
Test #15:
score: 0
Accepted
time: 0ms
memory: 3828kb
Test #16:
score: 0
Accepted
time: 0ms
memory: 3820kb
Test #17:
score: 0
Accepted
time: 0ms
memory: 3840kb
Test #18:
score: 0
Accepted
time: 0ms
memory: 3800kb
Subtask #3:
score: 40
Accepted
Test #19:
score: 40
Accepted
time: 1ms
memory: 3816kb
Test #20:
score: 0
Accepted
time: 0ms
memory: 3780kb
Test #21:
score: 0
Accepted
time: 0ms
memory: 3844kb
Test #22:
score: 0
Accepted
time: 0ms
memory: 3796kb
Test #23:
score: 0
Accepted
time: 0ms
memory: 3820kb
Test #24:
score: 0
Accepted
time: 1ms
memory: 3856kb
Test #25:
score: 0
Accepted
time: 0ms
memory: 3824kb
Test #26:
score: 0
Accepted
time: 0ms
memory: 3784kb
Test #27:
score: 0
Accepted
time: 0ms
memory: 3820kb
Test #28:
score: 0
Accepted
time: 1ms
memory: 3776kb
Extra Test:
score: 0
Extra Test Passed