Submission #479590

# Submission time Handle Problem Language Result Execution time Memory
479590 2021-10-12T09:27:57 Z peti1234 Rectangles (IOI19_rect) C++17
100 / 100
4945 ms 673120 KB
#include <bits/stdc++.h>

using namespace std;
const int c=2550;
bool v[c][c], t[c][c];
int n, m, ans, ks, ko, ns, no, mini, db, fel[c][c], le[c][c], bal[c][c], jobb[c][c], cfel[c][c], cle[c][c], cbal[c][c], cjobb[c][c];
set<pair<pair<int, int>, pair<int, int> > > sol;
void add(int ks, int ko, int ns, int no) {
    int mini=min({ks, ko, ns, no});
    if (mini!=-1 && ks && ko && ns<n-1 && no<m-1 && ks<=ns && ko<=no) {

        int sdb=ns-ks+1, odb=no-ko+1;
        bool josor=(jobb[ns][ko]==no && cjobb[ns][ko]>=sdb || bal[ns][no]==ko && cbal[ns][no]>=sdb);
        bool jooszlop=(le[ks][no]==ns && cle[ks][no]>=odb || fel[ns][no]==ks && cfel[ns][no]>=odb);

        if (josor && jooszlop) {
            pair<pair<int, int>, pair<int, int> > p={{ks, ko}, {ns, no}};
            if (sol.find(p)==sol.end()) {
                ans++;
                sol.insert(p);
            }
        }

    }
}
vector<vector<int>> sz;



bool gyors(int ks, int ko, int ns, int no) {
    //cout << "proba " << ks << " " << ko << " " << ns << " " << no << "\n";
    int sdb=ns-ks+1, odb=no-ko+1;
    //cout << "darab " << sdb << " " << odb << "\n";
    bool josor=(jobb[ns][ko]==no && cjobb[ns][ko]>=sdb || bal[ns][no]==ko && cbal[ns][no]>=sdb);
    bool jooszlop=(le[ks][no]==ns && cle[ks][no]>=odb || fel[ns][no]==ks && cfel[ns][no]>=odb);
    //cout << "ertekek " << le[ks][no] << " " << fel[ns][no] << "\n";
    //cout << "elromlik " << cle[ks][no] << "\n";
    //cout << josor << " " << jooszlop << "\n";
    return (josor && jooszlop);

}



long long count_rectangles(vector<vector<int>> sz2) {
    n=sz2.size(), m=sz2[0].size();

    sz=sz2;


    vector<int> s;
    for (int i=0; i<n; i++) {
        for (int j=0; j<m; j++) {
            while(s.size()>0 && sz[i][j]>=sz[i][s.back()]) jobb[i][1+s.back()]=j-1, s.pop_back();
            s.push_back(j);
        }
        while(s.size()>0) jobb[i][1+s.back()]=-1, s.pop_back();
        for (int j=m-1; j>=0; j--) {
            while(s.size()>0 && sz[i][j]>=sz[i][s.back()]) bal[i][-1+s.back()]=j+1, s.pop_back();
            if (j) s.push_back(j);
        }
        while(s.size()>0) bal[i][-1+s.back()]=-1, s.pop_back();
    }
    for (int j=0; j<m; j++) {
        for (int i=0; i<n; i++) {
            while(s.size()>0 && sz[i][j]>=sz[s.back()][j]) le[1+s.back()][j]=i-1, s.pop_back();
            s.push_back(i);
        }
        while(s.size()>0) le[1+s.back()][j]=-1, s.pop_back();
        for (int i=n-1; i>=0; i--) {
            while(s.size()>0 && sz[i][j]>=sz[s.back()][j]) fel[-1+s.back()][j]=i+1, s.pop_back();
            if (i) s.push_back(i);
        }
        while(s.size()>0) fel[-1+s.back()][j]=-1, s.pop_back();
    }


    for (int i=0; i<n; i++) {
        for (int j=0; j<m; j++) {
            if (i==0 || j==0 || i==n-1 || j==m-1) {
                bal[i][j]=jobb[i][j]=le[i][j]=fel[i][j]=-c;
            }
        }
    }


    for (int i=1; i<n-1; i++) {
        for (int j=1; j<m-1; j++) {
            int pos;

            pos=jobb[i][j];
            if (pos!=-1) {
                if (jobb[i-1][j]==pos) cjobb[i][j]=cjobb[i-1][j];
                if (bal[i-1][pos]==j) cjobb[i][j]=cbal[i-1][pos];
                cjobb[i][j]++;
            }

            pos=bal[i][j];
            if (pos!=-1) {
                if (bal[i-1][j]==pos) cbal[i][j]=cbal[i-1][j];
                if (jobb[i-1][pos]==j) cbal[i][j]=cjobb[i-1][pos];
                cbal[i][j]++;
            }

        }
    }
    for (int j=1; j<m-1; j++) {
        for (int i=1; i<n-1; i++) {
            int pos;




            pos=le[i][j];
            if (pos!=-1) {
                if (le[i][j-1]==pos) cle[i][j]=cle[i][j-1];
                if (fel[pos][j-1]==i) cle[i][j]=cfel[pos][j-1];
                cle[i][j]++;
            }

            pos=fel[i][j];
            if (pos!=-1) {
                if (fel[i][j-1]==pos) cfel[i][j]=cfel[i][j-1];
                if (le[pos][j-1]==i) cfel[i][j]=cle[pos][j-1];
                cfel[i][j]++;
            }

        }
    }
    //cout << "kezd " << fel[2][2] << " " << cfel[2][2] << "\n";
    //cout << gyors(1, 2, 2, 3) << "\n";
    //return 0;
    /*for (int ks=1; ks<n-1; ks++) {
        for (int ns=ks; ns<n-1; ns++) {
            for (int ko=1; ko<m-1; ko++) {
                for (int no=ko; no<m-1; no++) {
                    if (brute_force(ks, ko, ns, no)!=gyors(ks, ko, ns, no)) {
                        cout << "....\n";
                        cout << ks << " " << ko << " " << ns << " " << no << "\n";
                        cout << sz[ks][ko] << endl;
                        return 0;
                    }
                }
            }
        }
    }*/
    //return 0;


    for (int i=1; i<n-1; i++) {
        for (int j=1; j<m-1; j++) {
            int ba=bal[i][j], jo=jobb[i][j], fe=fel[i][j], l=le[i][j];

            add(i, j, l, jo), add(i, ba, l, j), add(fe, j, i, jo), add(fe, ba, i, j);

            if (jo!=-1) add(i, j, le[i][jo], jo);
            if (l!=-1) add(i, j, l, jobb[l][j]);
        }
    }

    return ans;

}



/*
int b1, b2;
vector<vector<int>> b3;
int main()
{
    cin >> b1 >> b2;
    //b1=b2=2500;
    b3.resize(b1);
    for (int i=0; i<b1; i++) for (int j=0; j<b2; j++) {
        int x; cin >> x;
        //int x=0;
        b3[i].push_back(x);
    }
    cout << count_rectangles(b3);
    return 0;
}
*/



/*
30 13
2314857 2951714 2551799 1262649 877317 2582030 1583139 3582015 1970170 2496877 252584 1959948 809239
1363336 486953 3562759 2227001 1996347 1994014 2317663 3232136 648728 2110306 2235717 2759784 2530855
258050 2824581 1243255 3198783 565865 231889 3727287 818081 2547404 3225075 3106983 1408265 2995366
1583118 3603184 3629350 727853 1632409 2090115 1933387 83572 2600107 3982487 2531332 427817 3615973
3440551 482330 832180 2483232 1194814 1255098 3085141 3601105 2004042 2837153 2452976 2727248 874027
1258869 875364 1785054 825988 2603807 616044 1136447 2155243 2614282 71407 1427398 536403 3683916
1342075 3590476 2175341 451150 616801 2691611 3044834 1464107 2158164 1823214 2852005 3843741 3348365
3275922 56468 169199 1391242 3905121 2188314 2243511 542710 891329 1856147 1366638 3533582 2388423
414756 228308 1784355 2073402 285249 2482853 950126 2479306 3261135 2401265 1132321 2475699 3500210
3639115 932461 412166 3184319 2485044 3895091 2327009 850550 583679 1610883 1517452 756022 1390820
2087853 1101237 515757 1513050 2877836 2764525 2414358 1468916 2674305 2446104 295599 841409 3215968
3119789 2516751 1471712 2600507 1997824 1353835 3994432 2006376 1507633 1140685 2177209 2927071 3424545
1674397 2008442 3544943 2924176 935153 2249156 3802239 1864176 1019795 1979123 1766617 694370 1733081
3151503 2112818 3513114 3136472 1994096 3379937 3919391 2547259 2798496 1308083 3156335 3855647 1504459
1023261 3017057 2016620 1439369 14943 1514149 1117474 1422903 1921583 2637168 1213085 185921 774705
932281 1562426 2076680 2283504 608334 3233863 1378085 2061191 1317930 3481445 2062302 1298203 2405802
2744660 2002176 1689886 947679 682094 2670377 1742765 2807882 2301713 2735402 1556615 2514209 1582309
1972102 1431422 2324079 2151483 2611035 2163733 709144 2889064 2205017 2880931 52320 1498527 2933993
1209767 439593 3020508 3721396 1036704 142701 3927559 1608169 1743546 1625063 46581 2017411 808968
263329 3136612 293841 2117846 1207981 247502 2293469 2198968 2702265 1642631 637723 3263373 3860851
240802 1587995 1427863 188743 2698756 1850992 49687 1404055 830973 560046 1793635 882126 1947220
1902879 1925306 2563972 2903664 525375 2264944 2140527 1162814 1977719 1265162 1808117 2896293 956308
2481424 719088 1064586 496976 720141 3125893 2276444 1741080 881467 2570549 3588324 2535402 1767516
546865 2422130 2000584 2534743 3820322 3836881 936460 905455 2021753 279793 2611693 3353033 2670364
542176 1788941 1454467 3488899 3166602 806200 349711 2467429 3374884 2852311 1490036 223291 1904067
2283572 3167542 1022001 2893598 2541467 1310733 311674 3751564 762621 971844 1004691 2594274 3728923
3161793 2034612 614776 3670183 2325816 1707268 3862740 2715886 3833150 1644459 358172 2247126 3008803
2310628 2838931 3439134 526672 3878034 3828531 678835 1270375 1931564 574357 2934272 3603169 2515791
213795 737446 3581205 1683399 3125307 140091 3694357 3619274 1694258 356442 2055920 3991030 445263
2124254 193277 3567661 3047095 2066338 1717492 1375193 2159796 1294986 1069001 1972558 1182016 1628337
*/
/*

6 5
4 8 7 5 6
7 4 10 3 5
9 7 20 14 2
9 14 7 3 6
5 7 5 2 7
4 5 13 5 6
*/

Compilation message

rect.cpp: In function 'void add(int, int, int, int)':
rect.cpp:13:38: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
   13 |         bool josor=(jobb[ns][ko]==no && cjobb[ns][ko]>=sdb || bal[ns][no]==ko && cbal[ns][no]>=sdb);
      |                     ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
rect.cpp:14:39: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
   14 |         bool jooszlop=(le[ks][no]==ns && cle[ks][no]>=odb || fel[ns][no]==ks && cfel[ns][no]>=odb);
      |                        ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
rect.cpp: In function 'bool gyors(int, int, int, int)':
rect.cpp:34:34: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
   34 |     bool josor=(jobb[ns][ko]==no && cjobb[ns][ko]>=sdb || bal[ns][no]==ko && cbal[ns][no]>=sdb);
      |                 ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
rect.cpp:35:35: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
   35 |     bool jooszlop=(le[ks][no]==ns && cle[ks][no]>=odb || fel[ns][no]==ks && cfel[ns][no]>=odb);
      |                    ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 460 KB Output is correct
2 Correct 1 ms 1356 KB Output is correct
3 Correct 1 ms 1356 KB Output is correct
4 Correct 1 ms 1356 KB Output is correct
5 Correct 1 ms 1228 KB Output is correct
6 Correct 1 ms 1228 KB Output is correct
7 Correct 1 ms 1228 KB Output is correct
8 Correct 1 ms 716 KB Output is correct
9 Correct 1 ms 1324 KB Output is correct
10 Correct 1 ms 1228 KB Output is correct
11 Correct 1 ms 1228 KB Output is correct
12 Correct 1 ms 1228 KB Output is correct
13 Correct 0 ms 332 KB Output is correct
14 Correct 1 ms 460 KB Output is correct
15 Correct 1 ms 588 KB Output is correct
16 Correct 1 ms 384 KB Output is correct
17 Correct 0 ms 332 KB Output is correct
18 Correct 1 ms 332 KB Output is correct
19 Correct 1 ms 1228 KB Output is correct
20 Correct 1 ms 1228 KB Output is correct
21 Correct 0 ms 460 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 460 KB Output is correct
2 Correct 1 ms 1356 KB Output is correct
3 Correct 1 ms 1356 KB Output is correct
4 Correct 1 ms 1356 KB Output is correct
5 Correct 1 ms 1228 KB Output is correct
6 Correct 1 ms 1228 KB Output is correct
7 Correct 1 ms 1228 KB Output is correct
8 Correct 1 ms 716 KB Output is correct
9 Correct 1 ms 1324 KB Output is correct
10 Correct 1 ms 1228 KB Output is correct
11 Correct 1 ms 1228 KB Output is correct
12 Correct 1 ms 1228 KB Output is correct
13 Correct 0 ms 332 KB Output is correct
14 Correct 1 ms 460 KB Output is correct
15 Correct 1 ms 588 KB Output is correct
16 Correct 1 ms 384 KB Output is correct
17 Correct 0 ms 332 KB Output is correct
18 Correct 1 ms 332 KB Output is correct
19 Correct 1 ms 1228 KB Output is correct
20 Correct 1 ms 1228 KB Output is correct
21 Correct 0 ms 460 KB Output is correct
22 Correct 6 ms 3532 KB Output is correct
23 Correct 4 ms 3496 KB Output is correct
24 Correct 5 ms 3532 KB Output is correct
25 Correct 4 ms 3192 KB Output is correct
26 Correct 4 ms 3252 KB Output is correct
27 Correct 4 ms 3276 KB Output is correct
28 Correct 4 ms 3276 KB Output is correct
29 Correct 3 ms 3020 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 460 KB Output is correct
2 Correct 1 ms 1356 KB Output is correct
3 Correct 1 ms 1356 KB Output is correct
4 Correct 1 ms 1356 KB Output is correct
5 Correct 1 ms 1228 KB Output is correct
6 Correct 1 ms 1228 KB Output is correct
7 Correct 1 ms 1228 KB Output is correct
8 Correct 1 ms 716 KB Output is correct
9 Correct 1 ms 1324 KB Output is correct
10 Correct 1 ms 1228 KB Output is correct
11 Correct 1 ms 1228 KB Output is correct
12 Correct 1 ms 1228 KB Output is correct
13 Correct 0 ms 332 KB Output is correct
14 Correct 1 ms 460 KB Output is correct
15 Correct 1 ms 588 KB Output is correct
16 Correct 1 ms 384 KB Output is correct
17 Correct 6 ms 3532 KB Output is correct
18 Correct 4 ms 3496 KB Output is correct
19 Correct 5 ms 3532 KB Output is correct
20 Correct 4 ms 3192 KB Output is correct
21 Correct 4 ms 3252 KB Output is correct
22 Correct 4 ms 3276 KB Output is correct
23 Correct 4 ms 3276 KB Output is correct
24 Correct 3 ms 3020 KB Output is correct
25 Correct 0 ms 332 KB Output is correct
26 Correct 1 ms 332 KB Output is correct
27 Correct 1 ms 1228 KB Output is correct
28 Correct 1 ms 1228 KB Output is correct
29 Correct 0 ms 460 KB Output is correct
30 Correct 24 ms 10804 KB Output is correct
31 Correct 25 ms 10916 KB Output is correct
32 Correct 23 ms 10908 KB Output is correct
33 Correct 12 ms 8652 KB Output is correct
34 Correct 16 ms 9164 KB Output is correct
35 Correct 17 ms 9292 KB Output is correct
36 Correct 16 ms 9208 KB Output is correct
37 Correct 16 ms 9188 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 460 KB Output is correct
2 Correct 1 ms 1356 KB Output is correct
3 Correct 1 ms 1356 KB Output is correct
4 Correct 1 ms 1356 KB Output is correct
5 Correct 1 ms 1228 KB Output is correct
6 Correct 1 ms 1228 KB Output is correct
7 Correct 1 ms 1228 KB Output is correct
8 Correct 1 ms 716 KB Output is correct
9 Correct 1 ms 1324 KB Output is correct
10 Correct 1 ms 1228 KB Output is correct
11 Correct 1 ms 1228 KB Output is correct
12 Correct 1 ms 1228 KB Output is correct
13 Correct 0 ms 332 KB Output is correct
14 Correct 1 ms 460 KB Output is correct
15 Correct 1 ms 588 KB Output is correct
16 Correct 1 ms 384 KB Output is correct
17 Correct 6 ms 3532 KB Output is correct
18 Correct 4 ms 3496 KB Output is correct
19 Correct 5 ms 3532 KB Output is correct
20 Correct 4 ms 3192 KB Output is correct
21 Correct 4 ms 3252 KB Output is correct
22 Correct 4 ms 3276 KB Output is correct
23 Correct 4 ms 3276 KB Output is correct
24 Correct 3 ms 3020 KB Output is correct
25 Correct 24 ms 10804 KB Output is correct
26 Correct 25 ms 10916 KB Output is correct
27 Correct 23 ms 10908 KB Output is correct
28 Correct 12 ms 8652 KB Output is correct
29 Correct 16 ms 9164 KB Output is correct
30 Correct 17 ms 9292 KB Output is correct
31 Correct 16 ms 9208 KB Output is correct
32 Correct 16 ms 9188 KB Output is correct
33 Correct 0 ms 332 KB Output is correct
34 Correct 1 ms 332 KB Output is correct
35 Correct 1 ms 1228 KB Output is correct
36 Correct 1 ms 1228 KB Output is correct
37 Correct 0 ms 460 KB Output is correct
38 Correct 112 ms 41908 KB Output is correct
39 Correct 94 ms 41972 KB Output is correct
40 Correct 101 ms 41924 KB Output is correct
41 Correct 91 ms 42008 KB Output is correct
42 Correct 321 ms 74296 KB Output is correct
43 Correct 339 ms 74324 KB Output is correct
44 Correct 365 ms 74332 KB Output is correct
45 Correct 298 ms 69700 KB Output is correct
46 Correct 127 ms 45104 KB Output is correct
47 Correct 137 ms 46788 KB Output is correct
48 Correct 202 ms 54268 KB Output is correct
49 Correct 202 ms 54300 KB Output is correct
50 Correct 106 ms 38500 KB Output is correct
51 Correct 104 ms 27256 KB Output is correct
52 Correct 197 ms 54172 KB Output is correct
53 Correct 197 ms 54216 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 716 KB Output is correct
2 Correct 2 ms 716 KB Output is correct
3 Correct 1 ms 588 KB Output is correct
4 Correct 0 ms 332 KB Output is correct
5 Correct 2 ms 588 KB Output is correct
6 Correct 2 ms 576 KB Output is correct
7 Correct 2 ms 588 KB Output is correct
8 Correct 2 ms 588 KB Output is correct
9 Correct 2 ms 588 KB Output is correct
10 Correct 1 ms 332 KB Output is correct
11 Correct 1 ms 460 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 332 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
3 Correct 1 ms 1228 KB Output is correct
4 Correct 1 ms 1228 KB Output is correct
5 Correct 0 ms 460 KB Output is correct
6 Correct 1 ms 588 KB Output is correct
7 Correct 737 ms 139800 KB Output is correct
8 Correct 1678 ms 299884 KB Output is correct
9 Correct 1650 ms 301636 KB Output is correct
10 Correct 1710 ms 301736 KB Output is correct
11 Correct 510 ms 141252 KB Output is correct
12 Correct 983 ms 280468 KB Output is correct
13 Correct 1008 ms 285724 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 460 KB Output is correct
2 Correct 1 ms 1356 KB Output is correct
3 Correct 1 ms 1356 KB Output is correct
4 Correct 1 ms 1356 KB Output is correct
5 Correct 1 ms 1228 KB Output is correct
6 Correct 1 ms 1228 KB Output is correct
7 Correct 1 ms 1228 KB Output is correct
8 Correct 1 ms 716 KB Output is correct
9 Correct 1 ms 1324 KB Output is correct
10 Correct 1 ms 1228 KB Output is correct
11 Correct 1 ms 1228 KB Output is correct
12 Correct 1 ms 1228 KB Output is correct
13 Correct 0 ms 332 KB Output is correct
14 Correct 1 ms 460 KB Output is correct
15 Correct 1 ms 588 KB Output is correct
16 Correct 1 ms 384 KB Output is correct
17 Correct 6 ms 3532 KB Output is correct
18 Correct 4 ms 3496 KB Output is correct
19 Correct 5 ms 3532 KB Output is correct
20 Correct 4 ms 3192 KB Output is correct
21 Correct 4 ms 3252 KB Output is correct
22 Correct 4 ms 3276 KB Output is correct
23 Correct 4 ms 3276 KB Output is correct
24 Correct 3 ms 3020 KB Output is correct
25 Correct 24 ms 10804 KB Output is correct
26 Correct 25 ms 10916 KB Output is correct
27 Correct 23 ms 10908 KB Output is correct
28 Correct 12 ms 8652 KB Output is correct
29 Correct 16 ms 9164 KB Output is correct
30 Correct 17 ms 9292 KB Output is correct
31 Correct 16 ms 9208 KB Output is correct
32 Correct 16 ms 9188 KB Output is correct
33 Correct 112 ms 41908 KB Output is correct
34 Correct 94 ms 41972 KB Output is correct
35 Correct 101 ms 41924 KB Output is correct
36 Correct 91 ms 42008 KB Output is correct
37 Correct 321 ms 74296 KB Output is correct
38 Correct 339 ms 74324 KB Output is correct
39 Correct 365 ms 74332 KB Output is correct
40 Correct 298 ms 69700 KB Output is correct
41 Correct 127 ms 45104 KB Output is correct
42 Correct 137 ms 46788 KB Output is correct
43 Correct 202 ms 54268 KB Output is correct
44 Correct 202 ms 54300 KB Output is correct
45 Correct 106 ms 38500 KB Output is correct
46 Correct 104 ms 27256 KB Output is correct
47 Correct 197 ms 54172 KB Output is correct
48 Correct 197 ms 54216 KB Output is correct
49 Correct 3 ms 716 KB Output is correct
50 Correct 2 ms 716 KB Output is correct
51 Correct 1 ms 588 KB Output is correct
52 Correct 0 ms 332 KB Output is correct
53 Correct 2 ms 588 KB Output is correct
54 Correct 2 ms 576 KB Output is correct
55 Correct 2 ms 588 KB Output is correct
56 Correct 2 ms 588 KB Output is correct
57 Correct 2 ms 588 KB Output is correct
58 Correct 1 ms 332 KB Output is correct
59 Correct 1 ms 460 KB Output is correct
60 Correct 1 ms 588 KB Output is correct
61 Correct 737 ms 139800 KB Output is correct
62 Correct 1678 ms 299884 KB Output is correct
63 Correct 1650 ms 301636 KB Output is correct
64 Correct 1710 ms 301736 KB Output is correct
65 Correct 510 ms 141252 KB Output is correct
66 Correct 983 ms 280468 KB Output is correct
67 Correct 1008 ms 285724 KB Output is correct
68 Correct 0 ms 332 KB Output is correct
69 Correct 1 ms 332 KB Output is correct
70 Correct 1 ms 1228 KB Output is correct
71 Correct 1 ms 1228 KB Output is correct
72 Correct 0 ms 460 KB Output is correct
73 Correct 1413 ms 273372 KB Output is correct
74 Correct 1215 ms 273472 KB Output is correct
75 Correct 1144 ms 273720 KB Output is correct
76 Correct 1159 ms 273384 KB Output is correct
77 Correct 4945 ms 673120 KB Output is correct
78 Correct 1525 ms 257604 KB Output is correct
79 Correct 1647 ms 335344 KB Output is correct
80 Correct 2540 ms 411016 KB Output is correct
81 Correct 1563 ms 249192 KB Output is correct
82 Correct 2080 ms 373572 KB Output is correct
83 Correct 2598 ms 416560 KB Output is correct
84 Correct 1470 ms 248388 KB Output is correct
85 Correct 2520 ms 415668 KB Output is correct
86 Correct 2458 ms 404484 KB Output is correct
87 Correct 2705 ms 480636 KB Output is correct
88 Correct 4864 ms 672808 KB Output is correct
89 Correct 4842 ms 668604 KB Output is correct
90 Correct 4810 ms 666308 KB Output is correct