Submission #547533

# Submission time Handle Problem Language Result Execution time Memory
547533 2022-04-10T22:27:37 Z duality Flights (JOI22_flights) C++17
82 / 100
897 ms 25924 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 = B; 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()+1;
        //printVar(ret);
        string r;
        while (ret > 0) r += '0'+(ret % 2),ret /= 2;
        if (r.empty()) r = "0";
        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+1;
        string r;
        while (ret > 0) r += '0'+(ret % 2),ret /= 2;
        if (r.empty()) r = "0";
        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 = B; 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) {
    //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--;
    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:175:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  175 |     for (i = 0; i < T.size(); i++) {
      |                 ~~^~~~~~~~~~
Benjamin.cpp:182:34: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  182 |             if (all3[ret].size() == i*(i-1)/2) break;
      |                 ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 70 ms 23016 KB Output is correct
2 Correct 70 ms 22960 KB Output is correct
3 Correct 71 ms 22992 KB Output is correct
4 Correct 70 ms 23028 KB Output is correct
5 Correct 71 ms 23064 KB Output is correct
6 Correct 86 ms 24036 KB Output is correct
7 Correct 87 ms 24084 KB Output is correct
8 Correct 80 ms 24008 KB Output is correct
9 Correct 81 ms 24056 KB Output is correct
10 Correct 83 ms 24528 KB Output is correct
11 Correct 76 ms 23816 KB Output is correct
12 Correct 80 ms 23984 KB Output is correct
13 Correct 79 ms 23936 KB Output is correct
14 Correct 77 ms 23868 KB Output is correct
15 Correct 79 ms 25572 KB Output is correct
16 Correct 85 ms 24212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Partially correct 72 ms 23028 KB Output is partially correct
2 Partially correct 221 ms 25924 KB Output is partially correct
3 Partially correct 75 ms 22988 KB Output is partially correct
4 Partially correct 843 ms 24096 KB Output is partially correct
5 Partially correct 763 ms 24160 KB Output is partially correct
6 Partially correct 767 ms 24152 KB Output is partially correct
7 Partially correct 665 ms 25648 KB Output is partially correct
8 Partially correct 793 ms 24176 KB Output is partially correct
9 Partially correct 497 ms 24912 KB Output is partially correct
10 Partially correct 453 ms 25628 KB Output is partially correct
11 Partially correct 626 ms 24104 KB Output is partially correct
12 Partially correct 124 ms 23732 KB Output is partially correct
13 Partially correct 298 ms 24176 KB Output is partially correct
14 Partially correct 379 ms 24008 KB Output is partially correct
15 Partially correct 76 ms 23004 KB Output is partially correct
16 Partially correct 468 ms 25772 KB Output is partially correct
17 Partially correct 408 ms 25800 KB Output is partially correct
18 Partially correct 494 ms 25308 KB Output is partially correct
19 Partially correct 428 ms 25308 KB Output is partially correct
20 Partially correct 345 ms 24948 KB Output is partially correct
21 Partially correct 438 ms 25280 KB Output is partially correct
22 Partially correct 438 ms 24352 KB Output is partially correct
23 Partially correct 429 ms 24248 KB Output is partially correct
24 Partially correct 468 ms 24188 KB Output is partially correct
25 Partially correct 436 ms 24216 KB Output is partially correct
26 Partially correct 504 ms 24176 KB Output is partially correct
27 Partially correct 462 ms 24276 KB Output is partially correct
28 Partially correct 429 ms 24164 KB Output is partially correct
29 Partially correct 423 ms 24248 KB Output is partially correct
30 Partially correct 428 ms 24244 KB Output is partially correct
31 Partially correct 450 ms 24208 KB Output is partially correct
32 Partially correct 486 ms 24228 KB Output is partially correct
33 Partially correct 415 ms 24120 KB Output is partially correct
34 Partially correct 422 ms 24216 KB Output is partially correct
35 Partially correct 465 ms 24196 KB Output is partially correct
36 Partially correct 446 ms 24172 KB Output is partially correct
37 Partially correct 430 ms 24224 KB Output is partially correct
38 Partially correct 434 ms 24360 KB Output is partially correct
39 Partially correct 132 ms 24088 KB Output is partially correct
40 Partially correct 897 ms 25496 KB Output is partially correct