| Task: | Niitty |
| Sender: | anotn |
| Submission time: | 2026-09-20 18:52:52 +0300 |
| Language: | C++ (C++17) |
| Status: | READY |
| Result: | 33 |
| subtask | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 4 |
| #2 | ACCEPTED | 6 |
| #3 | ACCEPTED | 10 |
| #4 | ACCEPTED | 13 |
| #5 | TIME LIMIT EXCEEDED | 0 |
| #6 | TIME LIMIT EXCEEDED | 0 |
| test | verdict | time | subtask | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | 1, 2, 3, 4, 5, 6 | details |
| #2 | ACCEPTED | 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 | ACCEPTED | 0.01 s | 2, 3, 4, 5, 6 | details |
| #7 | ACCEPTED | 0.01 s | 2, 3, 4, 5, 6 | details |
| #8 | ACCEPTED | 0.01 s | 2, 3, 4, 5, 6 | details |
| #9 | ACCEPTED | 0.00 s | 2, 3, 4, 5, 6 | details |
| #10 | ACCEPTED | 0.04 s | 3, 4, 5, 6 | details |
| #11 | ACCEPTED | 0.04 s | 3, 4, 5, 6 | details |
| #12 | ACCEPTED | 0.04 s | 3, 4, 5, 6 | details |
| #13 | ACCEPTED | 0.01 s | 3, 4, 5, 6 | details |
| #14 | ACCEPTED | 0.36 s | 4, 5, 6 | details |
| #15 | ACCEPTED | 0.40 s | 4, 5, 6 | details |
| #16 | ACCEPTED | 0.36 s | 4, 5, 6 | details |
| #17 | ACCEPTED | 0.05 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 | ACCEPTED | 0.82 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 |
Compiler report
input/code.cpp: In member function 'constexpr bool Kukka::cmp(const Kukka&) const':
input/code.cpp:12:28: warning: comparison of integer expressions of different signedness: 'int' and 'std::array<int, 27>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
12 | for (auto i = 0; i < laji.size(); i++) {
| ~~^~~~~~~~~~~~~
input/code.cpp: In function 'constexpr Kukka operator+(const Kukka&, const Kukka&)':
input/code.cpp:21:28: warning: comparison of integer expressions of different signedness: 'int' and 'std::array<int, 27>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
21 | for (auto i = 0; i < lhs.laji.size(); i++)
| ~~^~~~~~~~~~~~~~~~~
input/code.cpp: In function 'constexpr Kukka operator-(const Kukka&, const Kukka&)':
input/code.cpp:27:28: warning: comparison of integer expressions of different signedness: 'int' and 'std::array<int, 27>::size_type' {aka 'long unsigned int'} [-Wsign-compare]...Code
#include <array>
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
int n;
struct Kukka {
array<int, 27> laji;
constexpr bool cmp(const Kukka& rhs) const noexcept {
for (auto i = 0; i < laji.size(); i++) {
if (!laji[i] && rhs.laji[i]) {
return false;
}
}
return true;
}
friend constexpr Kukka operator+(const Kukka& lhs, const Kukka& rhs) {
Kukka ret = lhs;
for (auto i = 0; i < lhs.laji.size(); i++)
ret.laji[i] += rhs.laji[i];
return ret;
}
friend constexpr Kukka operator-(const Kukka& lhs, const Kukka& rhs) {
Kukka ret = lhs;
for (auto i = 0; i < lhs.laji.size(); i++)
ret.laji[i] -= rhs.laji[i];
return ret;
}
};
using Niitty = vector<vector<Kukka>>;
bool test_area(const Niitty& niitty,
int x1, int y1,
int x2, int y2) {
Kukka left = niitty[y2][x1-1];
Kukka top = niitty[y1-1][x2];
Kukka overlap = niitty[y1-1][x1-1];
Kukka area = niitty[y2][x2];
Kukka ret = area - (left + top - overlap);
return ret.cmp(niitty[n][n]);
}
int main() {
ios_base::sync_with_stdio(0);
cin >> n;
Niitty niitty(n+1, vector<Kukka>(n+1));
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
char c;
cin >> c;
niitty[j][i] = niitty[j-1][i] + niitty[j][i-1] - niitty[j-1][i-1];
niitty[j][i].laji[c-'A']++;
}
}
int s = 0;
for (int y = 1; y <= n; y++) {
for (int x = 1; x <= n; x++) {
for (int k = y; k <= n; k++) {
if (!test_area(niitty, x, y, n, k)) continue;
int tmp = x;
for (int b = n; b >= 1; b /= 2) {
while (tmp+b <= n && !test_area(niitty, x, y, tmp+b, k)) tmp += b;
}
if (test_area(niitty, x, y, tmp, k)) tmp--;
s += n-tmp;
}
}
}
cout << s;
}Test details
Test 1
Subtask: 1, 2, 3, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 10 TNCTNPNTPC NPPNTNTPTP NTNTTCNTCT NPCPNPPNTT ... |
| correct output |
|---|
| 2035 |
| user output |
|---|
| 2035 |
Test 2
Subtask: 1, 2, 3, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 10 NFWQLWNWYS DZOQJVXFPJ CNHXPXMCQD QRTBVNLTQC ... |
| correct output |
|---|
| 9 |
| user output |
|---|
| 9 |
Test 3
Subtask: 1, 2, 3, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 10 XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX ... |
| correct output |
|---|
| 3025 |
| user output |
|---|
| 3025 |
Test 4
Subtask: 1, 2, 3, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 10 FFFFFFFFFF FFFFFCFFFF FFFFFFJFFF FFFFFFFFFF ... |
| correct output |
|---|
| 12 |
| user output |
|---|
| 12 |
Test 5
Subtask: 1, 2, 3, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 1 X |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 6
Subtask: 2, 3, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 20 BBCBUBOUOBBCUUBBCOUO BOUCOOCUBCOOOCOBOCUO UCCUUUOBCOCBCBUBUCOO BUOBUCUCUOOBCOOUBUOO ... |
| correct output |
|---|
| 38724 |
| user output |
|---|
| 38724 |
Test 7
Subtask: 2, 3, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 20 CBGLSHGZHYZDWBNDBJUG SMUXOJQYPXZDTMJUIWOJ XIDSTNBGHKRKOVUVMINB MTQGCFRUHQKALXRNCQGS ... |
| correct output |
|---|
| 8334 |
| user output |
|---|
| 8334 |
Test 8
Subtask: 2, 3, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 20 KKKKKKKKKKKKKKKKKKKK KKKKKKKKKKKKKKKKKKKK KKKKKKKKKKKKKKKKKKKK KKKKKKKKKKKKKKKKKKKK ... |
| correct output |
|---|
| 44100 |
| user output |
|---|
| 44100 |
Test 9
Subtask: 2, 3, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 20 AAAAAAAAXAAAAAAAAAAA AAAWAAAAAAAAAAAAAOAA AAAAAAAAAAAAAAAAAPAA AAAAAAAAKAAAAAAAAAAZ ... |
| correct output |
|---|
| 18 |
| user output |
|---|
| 18 |
Test 10
Subtask: 3, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 50 GRGREEEGREGXRXXEGXXREXGRRRGRRR... |
| correct output |
|---|
| 1584665 |
| user output |
|---|
| 1584665 |
Test 11
Subtask: 3, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 50 AITIISJUHCCRZNKSDCNQKYSQRINFWJ... |
| correct output |
|---|
| 1077746 |
| user output |
|---|
| 1077746 |
Test 12
Subtask: 3, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 50 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO... |
| correct output |
|---|
| 1625625 |
| user output |
|---|
| 1625625 |
Test 13
Subtask: 3, 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 50 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF... |
| correct output |
|---|
| 1680 |
| user output |
|---|
| 1680 |
Test 14
Subtask: 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 100 NNCMDCDDCCNNNDNCMMNCDCDCCDCDNM... |
| correct output |
|---|
| 25325366 |
| user output |
|---|
| 25325366 |
Test 15
Subtask: 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 100 LIMQQIHASECROEVILNVULGWZJPPKOG... |
| correct output |
|---|
| 22342463 |
| user output |
|---|
| 22342463 |
Test 16
Subtask: 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 100 TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT... |
| correct output |
|---|
| 25502500 |
| user output |
|---|
| 25502500 |
Test 17
Subtask: 4, 5, 6
Verdict: ACCEPTED
| input |
|---|
| 100 QXQQQQQQQQQQQQQQQQQQQQQQQQQQQQ... |
| correct output |
|---|
| 25650 |
| user output |
|---|
| 25650 |
Test 18
Subtask: 5, 6
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 200 NAANANMMKNKKAKMKMAKNKMNKMMNNAA... |
| correct output |
|---|
| 403292767 |
| user output |
|---|
| (empty) |
Test 19
Subtask: 5, 6
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 200 OMYWATTLURKQPTKEFMGGYAOONXWVSC... |
| correct output |
|---|
| 388111321 |
| user output |
|---|
| (empty) |
Test 20
Subtask: 5, 6
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 200 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC... |
| correct output |
|---|
| 404010000 |
| user output |
|---|
| (empty) |
Test 21
Subtask: 5, 6
Verdict: ACCEPTED
| input |
|---|
| 200 LLLLLLLLLLLLLLLLLHLLLLLLLLLLLL... |
| correct output |
|---|
| 14159445 |
| user output |
|---|
| 14159445 |
Test 22
Subtask: 6
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 500 VVHWVUHVHUWWWVUUUWVUUHUUWHWUVW... |
| correct output |
|---|
| 15683003812 |
| user output |
|---|
| (empty) |
Test 23
Subtask: 6
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 500 OIMZGEQSBMBDSDXSWRFNKSGFEBBTJE... |
| correct output |
|---|
| 15575906951 |
| user output |
|---|
| (empty) |
Test 24
Subtask: 6
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 500 IIIIIIIIIIIIIIIIIIIIIIIIIIIIII... |
| correct output |
|---|
| 15687562500 |
| user output |
|---|
| (empty) |
Test 25
Subtask: 6
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 500 WWWWWWWWWWWWWWWWWWWWWWWWWWWWWW... |
| correct output |
|---|
| 3058970930 |
| user output |
|---|
| (empty) |
