| Task: | Niitty |
| Sender: | Vludo |
| Submission time: | 2024-10-28 03:56:44 +0200 |
| Language: | C++ (C++20) |
| Status: | READY |
| Result: | 10 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 4 |
| #2 | ACCEPTED | 6 |
| #3 | TIME LIMIT EXCEEDED | 0 |
| #4 | TIME LIMIT EXCEEDED | 0 |
| #5 | TIME LIMIT EXCEEDED | 0 |
| #6 | TIME LIMIT EXCEEDED | 0 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.01 s | 1, 2, 3, 4, 5, 6 | details |
| #2 | ACCEPTED | 0.00 s | 1, 2, 3, 4, 5, 6 | details |
| #3 | ACCEPTED | 0.01 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 | ACCEPTED | 0.04 s | 2, 3, 4, 5, 6 | details |
| #7 | ACCEPTED | 0.01 s | 2, 3, 4, 5, 6 | details |
| #8 | ACCEPTED | 0.05 s | 2, 3, 4, 5, 6 | details |
| #9 | ACCEPTED | 0.00 s | 2, 3, 4, 5, 6 | details |
| #10 | TIME LIMIT EXCEEDED | -- | 3, 4, 5, 6 | details |
| #11 | TIME LIMIT EXCEEDED | -- | 3, 4, 5, 6 | details |
| #12 | TIME LIMIT EXCEEDED | -- | 3, 4, 5, 6 | details |
| #13 | ACCEPTED | 0.01 s | 3, 4, 5, 6 | details |
| #14 | TIME LIMIT EXCEEDED | -- | 4, 5, 6 | details |
| #15 | TIME LIMIT EXCEEDED | -- | 4, 5, 6 | details |
| #16 | TIME LIMIT EXCEEDED | -- | 4, 5, 6 | details |
| #17 | ACCEPTED | 0.06 s | 4, 5, 6 | details |
| #18 | TIME LIMIT EXCEEDED | -- | 5, 6 | details |
| #19 | TIME LIMIT EXCEEDED | -- | 5, 6 | details |
| #20 | TIME LIMIT EXCEEDED | -- | 5, 6 | details |
| #21 | TIME LIMIT EXCEEDED | -- | 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 |
Compiler report
input/code.cpp: In function 'void haku(pii, pii, std::vector<bool>)':
input/code.cpp:28:10: warning: unused variable 'stop' [-Wunused-variable]
28 | bool stop;
| ^~~~
input/code.cpp: In function 'int main()':
input/code.cpp:107:10: warning: unused variable 'g' [-Wunused-variable]
107 | bool g[4] = {0,0,0,0};
| ^Code
#include<bits/stdc++.h>
using namespace std;
#define forn(i,n) for(int i=0;i<n;++i)
#define forN(i,k,n) for(int i=k;i<n;++i)
#define pb push_back
#define F first
#define S second
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
#define inf ((int)(1.01e9))
#define N ((int)(505))
int n, letters, L, counter;
char a[N][N];
int z[N][N], K[30];
map<pair<pii,pii>, bool> mem;
void haku(pii l, pii r, vector<bool> g) {
if (letters < L) return;
if (mem.find({l,r}) == mem.end()) {
counter++;
mem[{l,r}]=1;
}
else return;
//cout<<l.F<<' '<<l.S<<endl<<r.F<<' '<<r.S<<endl<<endl;
bool stop;
if (l.F < r.F && !g[0]) {
// 0
for (int i = l.S; i <= r.S; ++i) {
if (!(--K[a[l.F][i]-'A'])) {
letters--;
}
}
if (letters < L) g[0] = true;
else haku({l.F+1, l.S}, r, g);
for (int i = l.S; i <= r.S; ++i) {
if (!K[a[l.F][i]-'A']++)
letters++;
}
}
if (l.S < r.S && !g[1]) {
// 1
for (int i = l.F; i <= r.F; ++i) {
if (!(--K[a[i][l.S]-'A'])) {
letters--;
}
}
if (letters < L) g[1] = true;
else haku({l.F, l.S+1}, r, g);
for (int i = l.F; i <= r.F; ++i) {
if (!K[a[i][l.S]-'A']++)
letters++;
}
}
if (l.F < r.F && !g[2]) {
// 2
for (int i = r.S; i >= l.S; --i) {
if (!(--K[a[r.F][i]-'A']))
letters--;
}
if (letters < L) g[2] = true;
else haku(l, {r.F-1, r.S}, g);
for (int i = r.S; i >= l.S; --i) {
if (!K[a[r.F][i]-'A']++)
letters++;
}
}
if (l.S < r.S && !g[3]) {
// 3
for (int i = r.F; i >= l.F; --i) {
if (!(--K[a[i][r.S]-'A']))
letters--;
}
if (letters < L) g[3] = true;
else haku(l, {r.F, r.S-1}, g);
for (int i = r.F; i >= l.F; --i) {
if (!K[a[i][r.S]-'A']++)
letters++;
}
}
}
int main() {
cin.tie(0) -> sync_with_stdio(0);
cout.tie(0);
cin >> n;
forn(i,n) forn(j,n) {
char ina;
cin >> ina;
a[i][j] = ina;
K[ina-'A']++;
}
forn(i,30) if (K[i]) letters++;
L = letters;
counter = 0;
bool g[4] = {0,0,0,0};
haku({0, 0}, {n-1, n-1}, {0,0,0,0});
cout << counter << endl;
}Test details
Test 1
Group: 1, 2, 3, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 10 TNCTNPNTPC NPPNTNTPTP NTNTTCNTCT NPCPNPPNTT ... |
| correct output |
|---|
| 2035 |
| user output |
|---|
| 2035 |
Test 2
Group: 1, 2, 3, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 10 NFWQLWNWYS DZOQJVXFPJ CNHXPXMCQD QRTBVNLTQC ... |
| correct output |
|---|
| 9 |
| user output |
|---|
| 9 |
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: ACCEPTED
| input |
|---|
| 20 BBCBUBOUOBBCUUBBCOUO BOUCOOCUBCOOOCOBOCUO UCCUUUOBCOCBCBUBUCOO BUOBUCUCUOOBCOOUBUOO ... |
| correct output |
|---|
| 38724 |
| user output |
|---|
| 38724 |
Test 7
Group: 2, 3, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 20 CBGLSHGZHYZDWBNDBJUG SMUXOJQYPXZDTMJUIWOJ XIDSTNBGHKRKOVUVMINB MTQGCFRUHQKALXRNCQGS ... |
| correct output |
|---|
| 8334 |
| user output |
|---|
| 8334 |
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: TIME LIMIT EXCEEDED
| input |
|---|
| 50 GRGREEEGREGXRXXEGXXREXGRRRGRRR... |
| correct output |
|---|
| 1584665 |
| user output |
|---|
| (empty) |
Test 11
Group: 3, 4, 5, 6
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 50 AITIISJUHCCRZNKSDCNQKYSQRINFWJ... |
| correct output |
|---|
| 1077746 |
| user output |
|---|
| (empty) |
Test 12
Group: 3, 4, 5, 6
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 50 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO... |
| correct output |
|---|
| 1625625 |
| user output |
|---|
| (empty) |
Test 13
Group: 3, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 50 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF... |
| correct output |
|---|
| 1680 |
| user output |
|---|
| 1680 |
Test 14
Group: 4, 5, 6
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 100 NNCMDCDDCCNNNDNCMMNCDCDCCDCDNM... |
| correct output |
|---|
| 25325366 |
| user output |
|---|
| (empty) |
Test 15
Group: 4, 5, 6
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 100 LIMQQIHASECROEVILNVULGWZJPPKOG... |
| correct output |
|---|
| 22342463 |
| user output |
|---|
| (empty) |
Test 16
Group: 4, 5, 6
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 100 TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT... |
| correct output |
|---|
| 25502500 |
| user output |
|---|
| (empty) |
Test 17
Group: 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 100 QXQQQQQQQQQQQQQQQQQQQQQQQQQQQQ... |
| correct output |
|---|
| 25650 |
| user output |
|---|
| 25650 |
Test 18
Group: 5, 6
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 200 NAANANMMKNKKAKMKMAKNKMNKMMNNAA... |
| correct output |
|---|
| 403292767 |
| user output |
|---|
| (empty) |
Test 19
Group: 5, 6
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 200 OMYWATTLURKQPTKEFMGGYAOONXWVSC... |
| correct output |
|---|
| 388111321 |
| user output |
|---|
| (empty) |
Test 20
Group: 5, 6
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 200 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC... |
| correct output |
|---|
| 404010000 |
| user output |
|---|
| (empty) |
Test 21
Group: 5, 6
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 200 LLLLLLLLLLLLLLLLLHLLLLLLLLLLLL... |
| correct output |
|---|
| 14159445 |
| user output |
|---|
| (empty) |
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) |
