Submission #260878

# Submission time Handle Problem Language Result Execution time Memory
260878 2020-08-11T06:38:46 Z 문홍윤(#5067) Stray Cat (JOI20_stray) C++17
15 / 100
66 ms 17108 KB
#include "Anthony.h"
#include <bits/stdc++.h>
#define eb emplace_back
#define mp make_pair
#define F first
#define S second
using namespace std;
typedef pair<int, int> pii;
static const int INF=1e9;

static int n, m, col[20010];
static vector<pii> link[20010];

static int que[20010], fr, re, d[20010];
static void col_typeA(){
    que[++re]=0;
    d[0]=1;
    for(fr=1; fr<=re; fr++){
        for(auto i:link[que[fr]]){
            if(d[i.F])continue;
            d[i.F]=d[que[fr]]+1;
            que[++re]=i.F;
        }
    }
    for(int i=0; i<n; i++){
        for(auto j:link[i]){
            int tmp=min(d[i], d[j.F]);
            col[j.S]=tmp%3+1;
        }
    }
}
static int rpt[6]={0, 1, 0, 0, 1, 1};
static void dfs(int num, int par, int uc){
    int tmp=link[num].size();
    if(!num)tmp++;
    int nxt=1-rpt[uc];
    if(tmp==2)nxt=(uc+1)%6;
    for(auto i:link[num]){
        if(i.F==par)continue;
        col[i.S]=rpt[nxt];
        dfs(i.F, num, nxt);
    }
}
static void col_typeB(){dfs(0, -1, 0);}

vector<int> Mark(int N, int M, int A, int B, vector<int> U, vector<int> V){
    n=N, m=M;
    vector<int> ret(m);
    for(int i=0; i<m; i++){
        link[U[i]].eb(V[i], i);
        link[V[i]].eb(U[i], i);
    }
    if(A>=3)col_typeA();
    else col_typeB();
    for(int i=0; i<m; i++)ret[i]=col[i]-(A>=3);
    return ret;
}
#include "Catherine.h"
#include <bits/stdc++.h>
#define eb emplace_back
#define mp make_pair
#define F first
#define S second
using namespace std;
typedef pair<int, int> pii;

static int typ;
void Init(int A, int B){
    if(A>=3)typ=1;
    else typ=2;
}

static int move_typeA(vector<int> vc){
    for(int i=0; i<3; i++)if(vc[i]&&!vc[(i+2)%3])return i;
}

static int rpt[6]={0, 1, 0, 0, 1, 1};
static bool fnd;
static int cnt, prv=-1, mask;
static int move_typeB(vector<int> vc){
    cnt++;
    int deg=vc[0]+vc[1];
    if(prv>=0)deg++;
    if(fnd){
        if(deg>=3){
            prv=1-prv;
            return prv;
        }
        if(vc[0])prv=0;
        else prv=1;
        return prv;
    }
    if(deg==1){
        fnd=true;
        if(cnt>1)return -1;
        if(vc[0])prv=0;
        else prv=1;
        return prv;
    }
    if(deg>=3){
        if(cnt>1)vc[prv]++;
        fnd=true;
        int tmp;
        if(vc[0]==1)tmp=0;
        else tmp=1;
        if(tmp==prv&&cnt>1)return -1;
        prv=tmp;
        return tmp;
    }
    if(cnt<=3){
        if(vc[0])prv=0;
        else prv=1;
        if(cnt==1)mask*=2, mask+=1-prv;
        mask*=2, mask+=prv;
        return prv;
    }
    if(cnt==4){
        fnd=true;
        int opp;
        if(vc[0])opp=0;
        else opp=1;
        mask*=2, mask+=opp;
        if(mask==25||mask==18||mask==5||mask==11||mask==22||mask==12)return -1;
        prv=opp;
        return prv;
    }
}

int Move(vector<int> y){
    if(typ==1)return move_typeA(y);
    return move_typeB(y);
}

Compilation message

Catherine.cpp: In function 'int move_typeA(std::vector<int>)':
Catherine.cpp:18:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
Catherine.cpp: In function 'int move_typeB(std::vector<int>)':
Catherine.cpp:70:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
Catherine.cpp: At global scope:
Catherine.cpp:20:12: warning: 'rpt' defined but not used [-Wunused-variable]
 static int rpt[6]={0, 1, 0, 0, 1, 1};
            ^~~
# Verdict Execution time Memory Grader output
1 Correct 55 ms 16112 KB Output is correct
2 Correct 1 ms 1536 KB Output is correct
3 Correct 41 ms 15128 KB Output is correct
4 Correct 64 ms 17108 KB Output is correct
5 Correct 62 ms 16980 KB Output is correct
6 Correct 53 ms 15712 KB Output is correct
7 Correct 51 ms 15844 KB Output is correct
8 Correct 66 ms 16288 KB Output is correct
9 Correct 64 ms 16268 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 55 ms 16112 KB Output is correct
2 Correct 1 ms 1536 KB Output is correct
3 Correct 41 ms 15128 KB Output is correct
4 Correct 64 ms 17108 KB Output is correct
5 Correct 62 ms 16980 KB Output is correct
6 Correct 53 ms 15712 KB Output is correct
7 Correct 51 ms 15844 KB Output is correct
8 Correct 66 ms 16288 KB Output is correct
9 Correct 64 ms 16268 KB Output is correct
10 Correct 44 ms 13744 KB Output is correct
11 Correct 49 ms 13772 KB Output is correct
12 Correct 48 ms 13688 KB Output is correct
13 Correct 48 ms 13720 KB Output is correct
14 Correct 55 ms 13816 KB Output is correct
15 Correct 55 ms 14384 KB Output is correct
16 Correct 66 ms 16392 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 46 ms 13428 KB Output is correct
2 Correct 1 ms 1536 KB Output is correct
3 Correct 39 ms 12796 KB Output is correct
4 Correct 61 ms 14808 KB Output is correct
5 Correct 61 ms 14836 KB Output is correct
6 Correct 50 ms 13476 KB Output is correct
7 Correct 55 ms 13536 KB Output is correct
8 Correct 54 ms 13940 KB Output is correct
9 Correct 57 ms 14092 KB Output is correct
10 Correct 62 ms 13828 KB Output is correct
11 Correct 56 ms 13844 KB Output is correct
12 Correct 53 ms 13692 KB Output is correct
13 Correct 55 ms 13692 KB Output is correct
14 Correct 59 ms 13940 KB Output is correct
15 Correct 56 ms 14076 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 46 ms 13428 KB Output is correct
2 Correct 1 ms 1536 KB Output is correct
3 Correct 39 ms 12796 KB Output is correct
4 Correct 61 ms 14808 KB Output is correct
5 Correct 61 ms 14836 KB Output is correct
6 Correct 50 ms 13476 KB Output is correct
7 Correct 55 ms 13536 KB Output is correct
8 Correct 54 ms 13940 KB Output is correct
9 Correct 57 ms 14092 KB Output is correct
10 Correct 62 ms 13828 KB Output is correct
11 Correct 56 ms 13844 KB Output is correct
12 Correct 53 ms 13692 KB Output is correct
13 Correct 55 ms 13692 KB Output is correct
14 Correct 59 ms 13940 KB Output is correct
15 Correct 56 ms 14076 KB Output is correct
16 Correct 41 ms 11640 KB Output is correct
17 Correct 40 ms 12020 KB Output is correct
18 Correct 43 ms 11816 KB Output is correct
19 Correct 54 ms 11760 KB Output is correct
20 Correct 49 ms 12408 KB Output is correct
21 Correct 56 ms 12184 KB Output is correct
22 Correct 61 ms 14288 KB Output is correct
23 Correct 53 ms 11896 KB Output is correct
24 Correct 44 ms 11948 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 1536 KB Output is correct
2 Correct 1 ms 1536 KB Output is correct
3 Correct 2 ms 1536 KB Output is correct
4 Correct 2 ms 1792 KB Output is correct
5 Correct 4 ms 1792 KB Output is correct
6 Incorrect 2 ms 1792 KB Wrong Answer [5]
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 44 ms 11608 KB Output is correct
2 Correct 53 ms 12668 KB Output is correct
3 Correct 1 ms 1536 KB Output is correct
4 Correct 36 ms 11248 KB Output is correct
5 Correct 63 ms 13804 KB Output is correct
6 Correct 56 ms 13676 KB Output is correct
7 Incorrect 51 ms 12928 KB Wrong Answer [6]
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 47 ms 11556 KB Output is correct
2 Correct 49 ms 12284 KB Output is correct
3 Correct 3 ms 1536 KB Output is correct
4 Correct 39 ms 11144 KB Output is correct
5 Correct 65 ms 13684 KB Output is correct
6 Correct 61 ms 13864 KB Output is correct
7 Incorrect 48 ms 12900 KB Wrong Answer [6]
8 Halted 0 ms 0 KB -