| Task: | Niitty |
| Sender: | asonnine |
| Submission time: | 2024-11-06 08:44:45 +0200 |
| Language: | C++ (C++17) |
| Status: | READY |
| Result: | 0 |
| group | verdict | score |
|---|---|---|
| #1 | WRONG ANSWER | 0 |
| #2 | WRONG ANSWER | 0 |
| #3 | WRONG ANSWER | 0 |
| #4 | WRONG ANSWER | 0 |
| #5 | WRONG ANSWER | 0 |
| #6 | WRONG ANSWER | 0 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | WRONG ANSWER | 0.00 s | 1, 2, 3, 4, 5, 6 | details |
| #2 | WRONG ANSWER | 0.00 s | 1, 2, 3, 4, 5, 6 | details |
| #3 | ACCEPTED | 0.00 s | 1, 2, 3, 4, 5, 6 | details |
| #4 | ACCEPTED | 0.00 s | 1, 2, 3, 4, 5, 6 | details |
| #5 | ACCEPTED | 0.00 s | 1, 2, 3, 4, 5, 6 | details |
| #6 | WRONG ANSWER | 0.00 s | 2, 3, 4, 5, 6 | details |
| #7 | WRONG ANSWER | 0.01 s | 2, 3, 4, 5, 6 | details |
| #8 | ACCEPTED | 0.00 s | 2, 3, 4, 5, 6 | details |
| #9 | ACCEPTED | 0.00 s | 2, 3, 4, 5, 6 | details |
| #10 | WRONG ANSWER | 0.01 s | 3, 4, 5, 6 | details |
| #11 | WRONG ANSWER | 0.01 s | 3, 4, 5, 6 | details |
| #12 | ACCEPTED | 0.01 s | 3, 4, 5, 6 | details |
| #13 | WRONG ANSWER | 0.00 s | 3, 4, 5, 6 | details |
| #14 | WRONG ANSWER | 0.05 s | 4, 5, 6 | details |
| #15 | WRONG ANSWER | 0.02 s | 4, 5, 6 | details |
| #16 | ACCEPTED | 0.06 s | 4, 5, 6 | details |
| #17 | WRONG ANSWER | 0.00 s | 4, 5, 6 | details |
| #18 | WRONG ANSWER | 0.37 s | 5, 6 | details |
| #19 | WRONG ANSWER | 0.13 s | 5, 6 | details |
| #20 | ACCEPTED | 0.39 s | 5, 6 | details |
| #21 | WRONG ANSWER | 0.06 s | 5, 6 | details |
| #22 | TIME LIMIT EXCEEDED | -- | 6 | details |
| #23 | TIME LIMIT EXCEEDED | -- | 6 | details |
| #24 | TIME LIMIT EXCEEDED | -- | 6 | details |
| #25 | TIME LIMIT EXCEEDED | -- | 6 | details |
Code
#include <bits/stdc++.h>
#include <vector>
using namespace std;
int extra = 0;
int char_to_int(char in) {
return (int)in - 65;
}
int recursev(int n, int x, int dx, int y, int dy, vector<string> &field, vector<int> species, vector<vector<bool>> &used) {
int out = 0;
if (y == n - 1) {
return 0;
}
if (used[y+1][dy-1]) {
used[y+1][dy-1] = false;
bool up = true;
vector<int> new_species = species;
for (int i = x; i <= x+dx; i++) {
if (new_species[char_to_int(field[y][i])] != 1) {
new_species[char_to_int(field[y][i])]--;
} else {
up = false;
break;
}
}
if (up) {
out++;
out += recursev(n, x, dx, y+1, dy-1, field, new_species, used);
}
}
if (used[y][dy-1]) {
used[y][dy-1] = false;
bool down = true;
vector<int> new_species = species;
for (int i = x; i <= x+dx; i++) {
if (new_species[char_to_int(field[y+dy][i])] != 1) {
new_species[char_to_int(field[y+dy][i])]--;
} else {
down = false;
break;
}
}
if (down) {
out++;
out += recursev(n, x, dx, y, dy-1, field, new_species, used);
}
}
return out;
}
int vertical(int n, int x, int dx, vector<string> &field, vector<int> species) {
vector<vector<bool>> used(n);
vector<bool> temp(n);
fill(temp.begin(), temp.end(), true);
fill(used.begin(), used.end(), temp);
return recursev(n, x, dx, 0, n-1, field, species, used)+1;
}
int recurseh(int n, int x, int dx, vector<string> &field, vector<int> species, vector<vector<bool>> &used) {
int out = 0;
bool called = false;
if (x == n - 1) {
extra += vertical(n, x, dx, field, species);
return -1;
}
if (used[x+1][dx-1]) {
used[x+1][dx-1] = false;
bool left = true;
vector<int> new_species = species;
for (int i = 0; i < n; i++) {
if (new_species[char_to_int(field[i][x])] != 1) {
new_species[char_to_int(field[i][x])]--;
} else {
left = false;
break;
}
}
if (left) {
called = true;
out++;
out += recurseh(n, x+1, dx-1, field, new_species, used);
}
}
if (used[x][dx-1]) {
used[x][dx-1] = false;
bool right = true;
vector<int> new_species = species;
for (int i = 0; i < n; i++) {
if (new_species[char_to_int(field[i][x+dx])] != 1) {
new_species[char_to_int(field[i][x+dx])]--;
} else {
right = false;
break;
}
}
if (right) {
called = true;
out++;
out += recurseh(n, x, dx-1, field, new_species, used);
}
}
if (!called) {
extra += vertical(n, x, dx, field, species);
out--;
}
return out;
}
int main() {
int n;
cin >> n;
vector<string> field(n);
vector<int> species(26);
for (int i = 0; i < n; i++) {
cin >> field[i];
}
for (auto i : field) {
for (auto j : i) {
species[char_to_int(j)]++;
}
}
vector<vector<bool>> used(n);
vector<bool> temp(n);
fill(temp.begin(), temp.end(), true);
fill(used.begin(), used.end(), temp);
int h = recurseh(n, 0, n-1, field, species, used)+1;
fill(temp.begin(), temp.end(), true);
fill(used.begin(), used.end(), temp);
int v = recursev(n, 0, n-1, 0, n-1, field, species, used)+1;
//cout << h << endl << v << endl << extra << endl;
cout << h*v+extra << "\n";
}
Test details
Test 1
Group: 1, 2, 3, 4, 5, 6
Verdict: WRONG ANSWER
| input |
|---|
| 10 TNCTNPNTPC NPPNTNTPTP NTNTTCNTCT NPCPNPPNTT ... |
| correct output |
|---|
| 2035 |
| user output |
|---|
| 2434 |
Test 2
Group: 1, 2, 3, 4, 5, 6
Verdict: WRONG ANSWER
| input |
|---|
| 10 NFWQLWNWYS DZOQJVXFPJ CNHXPXMCQD QRTBVNLTQC ... |
| correct output |
|---|
| 9 |
| user output |
|---|
| 11 |
Test 3
Group: 1, 2, 3, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 10 XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX ... |
| correct output |
|---|
| 3025 |
| user output |
|---|
| 3025 |
Test 4
Group: 1, 2, 3, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 10 FFFFFFFFFF FFFFFCFFFF FFFFFFJFFF FFFFFFFFFF ... |
| correct output |
|---|
| 12 |
| user output |
|---|
| 12 |
Test 5
Group: 1, 2, 3, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 1 X |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 6
Group: 2, 3, 4, 5, 6
Verdict: WRONG ANSWER
| input |
|---|
| 20 BBCBUBOUOBBCUUBBCOUO BOUCOOCUBCOOOCOBOCUO UCCUUUOBCOCBCBUBUCOO BUOBUCUCUOOBCOOUBUOO ... |
| correct output |
|---|
| 38724 |
| user output |
|---|
| 41809 |
Test 7
Group: 2, 3, 4, 5, 6
Verdict: WRONG ANSWER
| input |
|---|
| 20 CBGLSHGZHYZDWBNDBJUG SMUXOJQYPXZDTMJUIWOJ XIDSTNBGHKRKOVUVMINB MTQGCFRUHQKALXRNCQGS ... |
| correct output |
|---|
| 8334 |
| user output |
|---|
| 13685 |
Test 8
Group: 2, 3, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 20 KKKKKKKKKKKKKKKKKKKK KKKKKKKKKKKKKKKKKKKK KKKKKKKKKKKKKKKKKKKK KKKKKKKKKKKKKKKKKKKK ... |
| correct output |
|---|
| 44100 |
| user output |
|---|
| 44100 |
Test 9
Group: 2, 3, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 20 AAAAAAAAXAAAAAAAAAAA AAAWAAAAAAAAAAAAAOAA AAAAAAAAAAAAAAAAAPAA AAAAAAAAKAAAAAAAAAAZ ... |
| correct output |
|---|
| 18 |
| user output |
|---|
| 18 |
Test 10
Group: 3, 4, 5, 6
Verdict: WRONG ANSWER
| input |
|---|
| 50 GRGREEEGREGXRXXEGXXREXGRRRGRRR... |
| correct output |
|---|
| 1584665 |
| user output |
|---|
| 1609094 |
Test 11
Group: 3, 4, 5, 6
Verdict: WRONG ANSWER
| input |
|---|
| 50 AITIISJUHCCRZNKSDCNQKYSQRINFWJ... |
| correct output |
|---|
| 1077746 |
| user output |
|---|
| 1378367 |
Test 12
Group: 3, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 50 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO... |
| correct output |
|---|
| 1625625 |
| user output |
|---|
| 1625625 |
Test 13
Group: 3, 4, 5, 6
Verdict: WRONG ANSWER
| input |
|---|
| 50 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF... |
| correct output |
|---|
| 1680 |
| user output |
|---|
| 2832 |
Test 14
Group: 4, 5, 6
Verdict: WRONG ANSWER
| input |
|---|
| 100 NNCMDCDDCCNNNDNCMMNCDCDCCDCDNM... |
| correct output |
|---|
| 25325366 |
| user output |
|---|
| 25431747 |
Test 15
Group: 4, 5, 6
Verdict: WRONG ANSWER
| input |
|---|
| 100 LIMQQIHASECROEVILNVULGWZJPPKOG... |
| correct output |
|---|
| 22342463 |
| user output |
|---|
| 24701019 |
Test 16
Group: 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 100 TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT... |
| correct output |
|---|
| 25502500 |
| user output |
|---|
| 25502500 |
Test 17
Group: 4, 5, 6
Verdict: WRONG ANSWER
| input |
|---|
| 100 QXQQQQQQQQQQQQQQQQQQQQQQQQQQQQ... |
| correct output |
|---|
| 25650 |
| user output |
|---|
| 47481 |
Test 18
Group: 5, 6
Verdict: WRONG ANSWER
| input |
|---|
| 200 NAANANMMKNKKAKMKMAKNKMNKMMNNAA... |
| correct output |
|---|
| 403292767 |
| user output |
|---|
| 403724392 |
Test 19
Group: 5, 6
Verdict: WRONG ANSWER
| input |
|---|
| 200 OMYWATTLURKQPTKEFMGGYAOONXWVSC... |
| correct output |
|---|
| 388111321 |
| user output |
|---|
| 400933202 |
Test 20
Group: 5, 6
Verdict: ACCEPTED
| input |
|---|
| 200 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC... |
| correct output |
|---|
| 404010000 |
| user output |
|---|
| 404010000 |
Test 21
Group: 5, 6
Verdict: WRONG ANSWER
| input |
|---|
| 200 LLLLLLLLLLLLLLLLLHLLLLLLLLLLLL... |
| correct output |
|---|
| 14159445 |
| user output |
|---|
| 37061034 |
Test 22
Group: 6
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 500 VVHWVUHVHUWWWVUUUWVUUHUUWHWUVW... |
| correct output |
|---|
| 15683003812 |
| user output |
|---|
| (empty) |
Test 23
Group: 6
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 500 OIMZGEQSBMBDSDXSWRFNKSGFEBBTJE... |
| correct output |
|---|
| 15575906951 |
| user output |
|---|
| (empty) |
Test 24
Group: 6
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 500 IIIIIIIIIIIIIIIIIIIIIIIIIIIIII... |
| correct output |
|---|
| 15687562500 |
| user output |
|---|
| (empty) |
Test 25
Group: 6
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 500 WWWWWWWWWWWWWWWWWWWWWWWWWWWWWW... |
| correct output |
|---|
| 3058970930 |
| user output |
|---|
| (empty) |
