Submission #547539

# Submission time Handle Problem Language Result Execution time Memory
547539 2022-04-10T22:34:14 Z duality Flights (JOI22_flights) C++17
84 / 100
1002 ms 23908 KB
#define DEBUG 0

#include <bits/stdc++.h>
using namespace std;

#if DEBUG
// basic debugging macros
int __i__,__j__;
#define printLine(l) for(__i__=0;__i__<l;__i__++){cout<<"-";}cout<<endl
#define printLine2(l,c) for(__i__=0;__i__<l;__i__++){cout<<c;}cout<<endl
#define printVar(n) cout<<#n<<": "<<n<<endl
#define printArr(a,l) cout<<#a<<": ";for(__i__=0;__i__<l;__i__++){cout<<a[__i__]<<" ";}cout<<endl
#define print2dArr(a,r,c) cout<<#a<<":\n";for(__i__=0;__i__<r;__i__++){for(__j__=0;__j__<c;__j__++){cout<<a[__i__][__j__]<<" ";}cout<<endl;}
#define print2dArr2(a,r,c,l) cout<<#a<<":\n";for(__i__=0;__i__<r;__i__++){for(__j__=0;__j__<c;__j__++){cout<<setw(l)<<setfill(' ')<<a[__i__][__j__]<<" ";}cout<<endl;}

// advanced debugging class
// debug 1,2,'A',"test";
class _Debug {
    public:
        template<typename T>
        _Debug& operator,(T val) {
            cout << val << endl;
            return *this;
        }
};
#define debug _Debug(),
#else
#define printLine(l)
#define printLine2(l,c)
#define printVar(n)
#define printArr(a,l)
#define print2dArr(a,r,c)
#define print2dArr2(a,r,c,l)
#define debug
#endif

// define
#define MAX_VAL 999999999
#define MAX_VAL_2 999999999999999999LL
#define EPS 1e-6
#define mp make_pair
#define pb push_back

// typedef
typedef unsigned int UI;
typedef long long int LLI;
typedef unsigned long long int ULLI;
typedef unsigned short int US;
typedef pair<int,int> pii;
typedef pair<LLI,LLI> plli;
typedef vector<int> vi;
typedef vector<LLI> vlli;
typedef vector<pii> vpii;
typedef vector<plli> vplli;

// ---------- END OF TEMPLATE ----------
#include "Ali.h"

namespace {
#define B 7

int N;
vi adjList[10010],adjList2[10010];
int com[10010],c = 0;
vi doDFS(int u,int p) {
    vi vv;
    vv.pb(u);
    for (int v: adjList[u]) {
        if (v != p) {
            vi vv2 = doDFS(v,u);
            vv.insert(vv.end(),vv2.begin(),vv2.end());
        }
    }
    if (vv.size() >= B) {
        for (int v: vv) com[v] = c;
        c++;
        vv.clear();
    }
    return vv;
}
int visited[10010],order[10010],num = 0,cc;
vi com2[10010];
int siz[10010];
int getSize(int u,int p) {
    siz[u] = 1;
    for (int v: adjList2[u]) {
        if (v != p) getSize(v,u),siz[u] += siz[v];
    }
    return 0;
}
int doDFS2(int u,int p) {
    visited[u] = 1,order[u] = num++,com2[cc].pb(u);
    sort(adjList2[u].begin(),adjList2[u].end(),[](int a,int b) { return siz[a] < siz[b]; });
    for (int v: adjList2[u]) {
        if (v != p) doDFS2(v,u);
    }
    return 0;
}
int doDFS3(int u,int p,int e,int d) {
    if (u == e) return d;
    for (int v: adjList[u]) {
        if (v != p) {
            int x = doDFS3(v,u,e,d+1);
            if (x != -1) return x;
        }
    }
    return -1;
}
int getDist(int u,int v) {
    return doDFS3(u,-1,v,0);
}
vpii all;
vector<vi> all2,all3;
struct tree {
    vpii edges;
    int add(int x) {
        for (pii &p: edges) p.first += x,p.second += x;
        return 0;
    }
};
vector<tree> trees[20];
vi adj[20];
int D[20][20];
int doDFS4(int u,int p,int r,int d) {
    D[r][u] = d;
    for (int v: adj[u]) {
        if (v != p) doDFS4(v,u,r,d+1);
    }
    return 0;
}
int genTrees() {
    int i,j,k;
    for (i = 0; i <= 2*B-1; i++) trees[i].clear();
    tree o;
    trees[1].pb(o);
    for (i = 2; i <= 2*B-1; i++) {
        for (tree t: trees[i-1]) {
            tree t2 = t;
            t2.add(1);
            t2.edges.pb(mp(0,1));
            trees[i].pb(t2);
        }
        for (j = 1; j <= i-2; j++) {
            if (j <= i-j-1) {
                for (tree t1: trees[j]) {
                    for (tree t2: trees[i-j-1]) {
                        tree t3 = t1;
                        t3.add(1),t3.edges.pb(mp(0,1));
                        tree t4 = t2;
                        t4.add(j+1),t4.edges.pb(mp(0,j+1));
                        t3.edges.insert(t3.edges.end(),t4.edges.begin(),t4.edges.end());
                        trees[i].pb(t3);
                    }
                }
            }
        }
        //cout<<i<<":"<<trees[i].size()<<endl;
    }
    for (i = 2*B-1; i >= B; i--) {
        trees[i].clear();
        for (tree t: trees[i-1]) {
            tree t2 = t;
            t2.add(1);
            t2.edges.pb(mp(0,1));
            trees[i].pb(t2);
        }
    }
    //cout<<"here3"<<endl;
    for (i = 2*B-1; i <= 2*B-1; i++) {
        //cout<<"i:"<<i<<endl;
        for (tree t: trees[i]) {
            for (j = 0; j < i; j++) adj[j].clear();
            for (pii p: t.edges) {
                adj[p.first].pb(p.second);
                adj[p.second].pb(p.first);
            }
            for (j = 0; j < i; j++) doDFS4(j,-1,j,0);
            for (j = 0; j < i; j++) {
                //if (adj[j].size() == 1) {
                    vi v;
                    for (k = 0; k < i; k++) v.pb(D[j][k]);
                    all2.pb(v);
                //}
            }
            vi v;
            for (j = 0; j < i; j++) {
                for (k = j+1; k < i; k++) v.pb(D[j][k]);
            }
            all3.pb(v);
        }
    }
    sort(all2.begin(),all2.end());
    all2.resize(unique(all2.begin(),all2.end())-all2.begin());
    sort(all3.begin(),all3.end());
    all3.resize(unique(all3.begin(),all3.end())-all3.begin());
    //cout<<all2.size()<<";"<<all3.size()<<endl;
    return 0;
}

}
void Init(int N,vector<int> U,vector<int> V) {
    int i;
    int o = N;
    ::N = N;
    for (i = 0; i < N+10; i++) adjList[i].clear(),adjList2[i].clear();
    c = 0;
    for (i = 0; i < N-1; i++) adjList[U[i]].pb(V[i]),adjList[V[i]].pb(U[i]);
    vi vv;
    int r;
    for (i = 0; i < N; i++) {
        if (adjList[i].size() == 1) {
            vv = doDFS(i,-1);
            r = i;
            break;
        }
    }
    if (!vv.empty()) {
        for (i = 0; i < vv.size(); i++) {
            if (vv[i] == r) {
                swap(vv[i],vv.back());
                break;
            }
        }
        while (vv.size() < B) {
            adjList[vv.back()].pb(N);
            adjList[N].pb(vv.back());
            vv.pb(N),N++;
        }
        for (int v: vv) com[v] = c;
        c++;
    }
    //printArr(com,N);
    for (i = 0; i < N; i++) {
        for (int v: adjList[i]) {
            if (com[i] == com[v]) adjList2[i].pb(v);
        }
    }
    fill(visited,visited+N,0);
    for (i = 0; i < N; i++) {
        if (!visited[i] && (adjList2[i].size() == 1)) {
            num = 0,cc = com[i];
            com2[cc].clear();
            getSize(i,-1);
            doDFS2(i,-1);
        }
    }
    for (i = 0; i < o; i++) SetID(i,(2*B-1)*com[i]+order[i]);
    int j;
    if (trees[B].empty()) {
        all.clear();
        for (i = 0; i < 1429; i++) {
            for (j = i; j < 1429; j++) all.pb(mp(i,j));
        }
        all2.clear(),all3.clear();
        //cout<<"here"<<endl;
        genTrees();
        //cout<<"here2"<<endl;
    }
}
string SendA(string S) {
    //cout<<"SendA " << S <<endl;
    int i,b = 0;
    assert(S.size() == 20);
    for (i = 0; i < S.size(); i++) {
        if (S[i] == '1') b |= (1 << i);
    }
    int x = all[b].first,y = all[b].second;
    vi comx = com2[x],comy = com2[y];
    if (x == y) {
        int j;
        vi D;
        for (i = 0; i < comx.size(); i++) {
            for (j = i+1; j < comy.size(); j++) D.pb(getDist(comx[i],comy[j]));
        }
        //printArr(D,D.size());
        LLI ret = lower_bound(all3.begin(),all3.end(),D)-all3.begin()+5;
        //printVar(ret);
        string r;
        while (ret > 0) r += '0'+(ret % 2),ret /= 2;
        r.pop_back();
        return r;
    }
    else {
        int j,m = 1e9;
        vector<vi> D(comx.size());
        for (i = 0; i < comx.size(); i++) {
            D[i].resize(comy.size());
            for (j = 0; j < comy.size(); j++) D[i][j] = getDist(comx[i],comy[j]),m = min(m,D[i][j]);
        }
        for (i = 0; i < comx.size(); i++) {
            for (j = 0; j < comy.size(); j++) {
                if (D[i][j] == m) break;
            }
            if (j < comy.size()) break;
        }
        int xx = i,yy = j;
        vi vx,vy;
        for (i = 0; i < comx.size(); i++) vx.pb(D[i][yy]-m);
        for (i = 0; i < comy.size(); i++) vy.pb(D[xx][i]-m);
        //printArr(vx,vx.size());
        //printArr(vy,vy.size());
        int px = lower_bound(all2.begin(),all2.end(),vx)-all2.begin();
        int py = lower_bound(all2.begin(),all2.end(),vy)-all2.begin();
        //printVar(px);
        //printVar(py);
        //printArr(all2[px],all2[px].size());
        //printArr(all2[py],all2[py].size());
        LLI ret = (LLI) m*all2.size()*all2.size()+(LLI) px*all2.size()+py+5;
        string r;
        while (ret > 0) r += '0'+(ret % 2),ret /= 2;
        r.pop_back();
        return r;
    }
}
#define DEBUG 0

#include <bits/stdc++.h>
using namespace std;

#if DEBUG
// basic debugging macros
int __i__,__j__;
#define printLine(l) for(__i__=0;__i__<l;__i__++){cout<<"-";}cout<<endl
#define printLine2(l,c) for(__i__=0;__i__<l;__i__++){cout<<c;}cout<<endl
#define printVar(n) cout<<#n<<": "<<n<<endl
#define printArr(a,l) cout<<#a<<": ";for(__i__=0;__i__<l;__i__++){cout<<a[__i__]<<" ";}cout<<endl
#define print2dArr(a,r,c) cout<<#a<<":\n";for(__i__=0;__i__<r;__i__++){for(__j__=0;__j__<c;__j__++){cout<<a[__i__][__j__]<<" ";}cout<<endl;}
#define print2dArr2(a,r,c,l) cout<<#a<<":\n";for(__i__=0;__i__<r;__i__++){for(__j__=0;__j__<c;__j__++){cout<<setw(l)<<setfill(' ')<<a[__i__][__j__]<<" ";}cout<<endl;}

// advanced debugging class
// debug 1,2,'A',"test";
class _Debug {
    public:
        template<typename T>
        _Debug& operator,(T val) {
            cout << val << endl;
            return *this;
        }
};
#define debug _Debug(),
#else
#define printLine(l)
#define printLine2(l,c)
#define printVar(n)
#define printArr(a,l)
#define print2dArr(a,r,c)
#define print2dArr2(a,r,c,l)
#define debug
#endif

// define
#define MAX_VAL 999999999
#define MAX_VAL_2 999999999999999999LL
#define EPS 1e-6
#define mp make_pair
#define pb push_back

// typedef
typedef unsigned int UI;
typedef long long int LLI;
typedef unsigned long long int ULLI;
typedef unsigned short int US;
typedef pair<int,int> pii;
typedef pair<LLI,LLI> plli;
typedef vector<int> vi;
typedef vector<LLI> vlli;
typedef vector<pii> vpii;
typedef vector<plli> vplli;

// ---------- END OF TEMPLATE ----------
#include "Benjamin.h"

namespace {
#define B 7

int X,Y;
vpii all;
vector<vi> all2,all3;
struct tree {
    vpii edges;
    int add(int x) {
        for (pii &p: edges) p.first += x,p.second += x;
        return 0;
    }
};
vector<tree> trees[20];
vi adj[20];
int D[20][20];
int doDFS4(int u,int p,int r,int d) {
    D[r][u] = d;
    for (int v: adj[u]) {
        if (v != p) doDFS4(v,u,r,d+1);
    }
    return 0;
}
int genTrees() {
    int i,j,k;
    for (i = 0; i <= 2*B-1; i++) trees[i].clear();
    tree o;
    trees[1].pb(o);
    for (i = 2; i <= 2*B-1; i++) {
        for (tree t: trees[i-1]) {
            tree t2 = t;
            t2.add(1);
            t2.edges.pb(mp(0,1));
            trees[i].pb(t2);
        }
        for (j = 1; j <= i-2; j++) {
            if (j <= i-j-1) {
                for (tree t1: trees[j]) {
                    for (tree t2: trees[i-j-1]) {
                        tree t3 = t1;
                        t3.add(1),t3.edges.pb(mp(0,1));
                        tree t4 = t2;
                        t4.add(j+1),t4.edges.pb(mp(0,j+1));
                        t3.edges.insert(t3.edges.end(),t4.edges.begin(),t4.edges.end());
                        trees[i].pb(t3);
                    }
                }
            }
        }
    }
    for (i = 2*B-1; i >= B; i--) {
        trees[i].clear();
        for (tree t: trees[i-1]) {
            tree t2 = t;
            t2.add(1);
            t2.edges.pb(mp(0,1));
            trees[i].pb(t2);
        }
    }
    for (i = 2*B-1; i <= 2*B-1; i++) {
        for (tree t: trees[i]) {
            for (j = 0; j < i; j++) adj[j].clear();
            for (pii p: t.edges) {
                adj[p.first].pb(p.second);
                adj[p.second].pb(p.first);
            }
            for (j = 0; j < i; j++) doDFS4(j,-1,j,0);
            for (j = 0; j < i; j++) {
                //if (adj[j].size() == 1) {
                    vi v;
                    for (k = 0; k < i; k++) v.pb(D[j][k]);
                    all2.pb(v);
                //}
            }
            vi v;
            for (j = 0; j < i; j++) {
                for (k = j+1; k < i; k++) v.pb(D[j][k]);
            }
            all3.pb(v);
        }
    }
    sort(all2.begin(),all2.end());
    all2.resize(unique(all2.begin(),all2.end())-all2.begin());
    sort(all3.begin(),all3.end());
    all3.resize(unique(all3.begin(),all3.end())-all3.begin());
    //cout<<all2.size()<<";"<<all3.size()<<endl;
    return 0;
}

}
string SendB(int N,int X,int Y) {
    //cout<<"SendB "<<N<<" "<<X<<" "<<Y<<endl;
    if (X > Y) swap(X,Y);
    ::X = X,::Y = Y;
    int i,j;
    if (trees[B].empty()) {
        all.clear();
        for (i = 0; i < 1429; i++) {
            for (j = i; j < 1429; j++) all.pb(mp(i,j));
        }
        all2.clear(),all3.clear();
        genTrees();
    }
    pii p = mp(X/(2*B-1),Y/(2*B-1));
    int pos = lower_bound(all.begin(),all.end(),p)-all.begin();
    string r;
    for (i = 0; i < 20; i++) {
        if (pos & (1 << i)) r += '1';
        else r += '0';
    }
    return r;
}
int Answer(string T) {
    T += '1';
    //cout<<"Answer "<<T<<endl;
    int i,j;
    LLI ret = 0;
    for (i = 0; i < T.size(); i++) {
        if (T[i] == '1') ret |= (1LL << i);
    }
    ret -= 5;
    if (X/(2*B-1) == Y/(2*B-1)) {
        //cout<<"siz:"<<all3[ret].size()<<endl;
        for (i = B; i <= 2*B-1; i++) {
            if (all3[ret].size() == i*(i-1)/2) break;
        }
        int s = i,c = 0;
        //cout<<"s:"<<i<<endl;
        for (i = 0; i < s; i++) {
            for (j = i+1; j < s; j++) {
                if ((i == (X % (2*B-1))) && (j == (Y % (2*B-1)))) break;
                else c++;
            }
            if (j < s) break;
        }
        //cout<<"c:"<<c<<endl;
        return all3[ret][c];
    }
    else {
        int d = ret/all2.size()/all2.size();
        int px = (ret/all2.size()) % all2.size();
        int py = ret % all2.size();
        //cout<<d<<";;"<<px<<";;"<<py<<endl;
        //for (int k: all2[px])cout<<k<<" ";
        //cout<<endl;
        //for (int k: all2[py])cout<<k<<" ";
        //cout<<endl;
        return d + all2[px][X % (2*B-1)] + all2[py][Y % (2*B-1)];
    }
}

Compilation message

Ali.cpp: In function 'void Init(int, std::vector<int>, std::vector<int>)':
Ali.cpp:218:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  218 |         for (i = 0; i < vv.size(); i++) {
      |                     ~~^~~~~~~~~~~
Ali.cpp: In function 'std::string SendA(std::string)':
Ali.cpp:264:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  264 |     for (i = 0; i < S.size(); i++) {
      |                 ~~^~~~~~~~~~
Ali.cpp:272:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  272 |         for (i = 0; i < comx.size(); i++) {
      |                     ~~^~~~~~~~~~~~~
Ali.cpp:273:29: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  273 |             for (j = i+1; j < comy.size(); j++) D.pb(getDist(comx[i],comy[j]));
      |                           ~~^~~~~~~~~~~~~
Ali.cpp:286:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  286 |         for (i = 0; i < comx.size(); i++) {
      |                     ~~^~~~~~~~~~~~~
Ali.cpp:288:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  288 |             for (j = 0; j < comy.size(); j++) D[i][j] = getDist(comx[i],comy[j]),m = min(m,D[i][j]);
      |                         ~~^~~~~~~~~~~~~
Ali.cpp:290:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  290 |         for (i = 0; i < comx.size(); i++) {
      |                     ~~^~~~~~~~~~~~~
Ali.cpp:291:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  291 |             for (j = 0; j < comy.size(); j++) {
      |                         ~~^~~~~~~~~~~~~
Ali.cpp:294:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  294 |             if (j < comy.size()) break;
      |                 ~~^~~~~~~~~~~~~
Ali.cpp:298:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  298 |         for (i = 0; i < comx.size(); i++) vx.pb(D[i][yy]-m);
      |                     ~~^~~~~~~~~~~~~
Ali.cpp:299:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  299 |         for (i = 0; i < comy.size(); i++) vy.pb(D[xx][i]-m);
      |                     ~~^~~~~~~~~~~~~
grader_ali.cpp:10:8: warning: '{anonymous}::_randmem' defined but not used [-Wunused-variable]
   10 |   char _randmem[12379];
      |        ^~~~~~~~

Benjamin.cpp: In function 'int Answer(std::string)':
Benjamin.cpp:176:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  176 |     for (i = 0; i < T.size(); i++) {
      |                 ~~^~~~~~~~~~
Benjamin.cpp:183:34: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  183 |             if (all3[ret].size() == i*(i-1)/2) break;
      |                 ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 54 ms 20872 KB Output is correct
2 Correct 54 ms 20984 KB Output is correct
3 Correct 56 ms 20972 KB Output is correct
4 Correct 55 ms 21104 KB Output is correct
5 Correct 58 ms 20936 KB Output is correct
6 Correct 73 ms 21936 KB Output is correct
7 Correct 74 ms 21944 KB Output is correct
8 Correct 66 ms 21908 KB Output is correct
9 Correct 67 ms 21812 KB Output is correct
10 Correct 69 ms 22332 KB Output is correct
11 Correct 61 ms 21948 KB Output is correct
12 Correct 64 ms 21796 KB Output is correct
13 Correct 62 ms 21872 KB Output is correct
14 Correct 64 ms 22024 KB Output is correct
15 Correct 66 ms 23492 KB Output is correct
16 Correct 72 ms 22124 KB Output is correct
# Verdict Execution time Memory Grader output
1 Partially correct 54 ms 20980 KB Output is partially correct
2 Partially correct 204 ms 23908 KB Output is partially correct
3 Partially correct 57 ms 20900 KB Output is partially correct
4 Partially correct 820 ms 22072 KB Output is partially correct
5 Partially correct 700 ms 22076 KB Output is partially correct
6 Partially correct 743 ms 22016 KB Output is partially correct
7 Partially correct 667 ms 23636 KB Output is partially correct
8 Partially correct 789 ms 22080 KB Output is partially correct
9 Partially correct 440 ms 22932 KB Output is partially correct
10 Partially correct 471 ms 23524 KB Output is partially correct
11 Partially correct 666 ms 22044 KB Output is partially correct
12 Partially correct 122 ms 21736 KB Output is partially correct
13 Partially correct 292 ms 22024 KB Output is partially correct
14 Partially correct 385 ms 21960 KB Output is partially correct
15 Partially correct 63 ms 20944 KB Output is partially correct
16 Partially correct 472 ms 23816 KB Output is partially correct
17 Partially correct 396 ms 23672 KB Output is partially correct
18 Partially correct 537 ms 23296 KB Output is partially correct
19 Partially correct 446 ms 23336 KB Output is partially correct
20 Partially correct 370 ms 22884 KB Output is partially correct
21 Partially correct 446 ms 23272 KB Output is partially correct
22 Partially correct 544 ms 22124 KB Output is partially correct
23 Partially correct 473 ms 22156 KB Output is partially correct
24 Partially correct 448 ms 22108 KB Output is partially correct
25 Partially correct 448 ms 22108 KB Output is partially correct
26 Partially correct 490 ms 21996 KB Output is partially correct
27 Partially correct 456 ms 22096 KB Output is partially correct
28 Partially correct 494 ms 22108 KB Output is partially correct
29 Partially correct 468 ms 22096 KB Output is partially correct
30 Partially correct 446 ms 22012 KB Output is partially correct
31 Partially correct 474 ms 22116 KB Output is partially correct
32 Partially correct 454 ms 22104 KB Output is partially correct
33 Partially correct 437 ms 22104 KB Output is partially correct
34 Partially correct 438 ms 22028 KB Output is partially correct
35 Partially correct 492 ms 22120 KB Output is partially correct
36 Partially correct 530 ms 22088 KB Output is partially correct
37 Partially correct 531 ms 22100 KB Output is partially correct
38 Partially correct 519 ms 22132 KB Output is partially correct
39 Partially correct 144 ms 21996 KB Output is partially correct
40 Partially correct 1002 ms 23528 KB Output is partially correct