Submission #259133

# Submission time Handle Problem Language Result Execution time Memory
259133 2020-08-07T08:39:46 Z 반딧불(#5071) 한자 끝말잇기 (JOI14_kanji) C++14
0 / 100
188 ms 14660 KB
#include <bits/stdc++.h>
#include "Annalib.h"

using namespace std;

typedef long long ll;

namespace ANNA{
    ll dist[302][302];
    int track[302][302];
    int message[302];
    bool know[302];
    ll dt[302];
};
using namespace ANNA;

void Anna(int n, int k, int A[], int B[], ll C[], int q, int S[], int T[], int m, int U[]) {
    for(int i=0; i<n; i++){
        for(int j=0; j<n; j++){
            if(i!=j) dist[i][j] = 4 * 1e18;
        }
    }
    for(int i=0; i<m; i++) know[U[i]] = 1;
    for(int i=0; i<k; i++){
        if(!know[i]) dist[A[i]][B[i]] = C[i], track[A[i]][B[i]] = -i-100;
    }
    for(int x=0; x<n; x++){
        for(int i=0; i<n; i++){
            for(int j=0; j<n; j++){
                if(dist[i][x] + dist[x][j] < dist[i][j]){
                    track[i][j] = x;
                    dist[i][j] = dist[i][x] + dist[x][j];
                }
            }
        }
    }

    int stP = A[U[0]];

    for(int i=0; i<q; i++){
        dt[i] = dist[S[i]][T[i]];
        for(int j=0; j<m; j++){
            if(dt[i] > dist[S[i]][stP] + C[U[j]] + dist[B[U[j]]][T[i]]){
                dt[i] = dist[S[i]][stP] + C[U[j]] + dist[B[U[j]]][T[i]];
                message[i] = j+1;
            }
        }
        if(dt[i] > 3*1e18) exit(1);
    }
    for(int i=0; i<60; i+=3){
        int mes = message[i] + message[i+1] * 6 + message[i+2] * 36;
        for(int j=0; j<8; j++){
            Tap(!!(mes & (1<<j)));
        }
    }
}
#include <bits/stdc++.h>
#include "Brunolib.h"

using namespace std;

typedef long long ll;

namespace BRUNO{
    ll dist[302][302];
    int track[302][302];
    int message[302];
    bool know[302];
    ll dt[302];
};
using namespace BRUNO;

void answer(int x, int y){
    if(x==y) return;
    if(track[x][y] < 0){
        Answer(-track[x][y]-100);
        return;
    }
    int z = track[x][y];
    answer(x, z);
    answer(z, y);
}

void Bruno(int n, int k, int A[], int B[], ll C[], int q, int S[], int T[], int m, int U[], int L, int X[]) {
    for(int i=0; i<n; i++){
        for(int j=0; j<n; j++){
            if(i!=j) dist[i][j] = 4 * 1e18;
        }
    }
    for(int i=0; i<m; i++) know[U[i]] = 1;
    for(int i=0; i<k; i++){
        if(!know[i]){
            dist[A[i]][B[i]] = C[i], track[A[i]][B[i]] = -i-100;
        }
    }
    for(int x=0; x<n; x++){
        for(int i=0; i<n; i++){
            for(int j=0; j<n; j++){
                if(dist[i][x] + dist[x][j] < dist[i][j]){
                    track[i][j] = x;
                    dist[i][j] = dist[i][x] + dist[x][j];
                }
            }
        }
    }

    for(int i=0; i<60; i+=3){
        int mes = 0;
        for(int j=0; j<8; j++){
            mes += (1<<j) * X[i/3*8+j];
        }
        message[i] = mes % 6;
        message[i+1] = mes / 6 % 6;
        message[i+2] = mes / 36;
    }

    for(int i=0; i<q; i++){
        if(message[i] == 0){
            answer(S[i], T[i]);
        }
        else{
            answer(S[i], A[U[0]]);
            Answer(U[message[i] - 1]);
            answer(B[U[message[i]-1]], T[i]);
        }
        Answer(-1);
    }
}
# Verdict Execution time Memory Grader output
1 Correct 55 ms 6584 KB Output is correct - L = 160
2 Correct 54 ms 6584 KB Output is correct - L = 160
3 Correct 54 ms 6576 KB Output is correct - L = 160
4 Correct 52 ms 6428 KB Output is correct - L = 160
5 Correct 59 ms 6740 KB Output is correct - L = 160
6 Correct 53 ms 6584 KB Output is correct - L = 160
7 Correct 55 ms 6584 KB Output is correct - L = 160
8 Correct 62 ms 6820 KB Output is correct - L = 160
9 Correct 67 ms 6936 KB Output is correct - L = 160
10 Correct 73 ms 7164 KB Output is correct - L = 160
11 Correct 54 ms 6664 KB Output is correct - L = 160
12 Incorrect 187 ms 14272 KB Output isn't correct - Wrong Answer [9]
13 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 56 ms 6692 KB Output is correct - L = 160
2 Incorrect 54 ms 6888 KB Output isn't correct - Wrong Answer [9]
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 53 ms 7088 KB Output is correct - L = 160
2 Incorrect 56 ms 6884 KB Output isn't correct - Wrong Answer [9]
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 55 ms 6820 KB Output isn't correct - L = 160
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 53 ms 6820 KB Output isn't correct - L = 160
2 Incorrect 54 ms 6928 KB Output isn't correct - Wrong Answer [9]
3 Incorrect 72 ms 6820 KB Output isn't correct - Wrong Answer [9]
4 Correct 78 ms 7016 KB Output isn't correct - L = 160
5 Correct 79 ms 6576 KB Output isn't correct - L = 160
6 Correct 57 ms 6972 KB Output isn't correct - L = 160
7 Incorrect 55 ms 6700 KB Output isn't correct - Wrong Answer [9]
8 Correct 56 ms 7060 KB Output isn't correct - L = 160
9 Correct 55 ms 7204 KB Output isn't correct - L = 160
10 Correct 53 ms 7088 KB Output isn't correct - L = 160
11 Incorrect 54 ms 7440 KB Output isn't correct - Wrong Answer [9]
12 Correct 57 ms 6952 KB Output isn't correct - L = 160
13 Incorrect 188 ms 14660 KB Output isn't correct - Wrong Answer [9]
14 Correct 56 ms 6848 KB Output isn't correct - L = 160
15 Incorrect 56 ms 6984 KB Output isn't correct - Wrong Answer [9]
16 Incorrect 66 ms 7080 KB Output isn't correct - Wrong Answer [9]
17 Incorrect 75 ms 7444 KB Output isn't correct - Wrong Answer [9]
18 Incorrect 82 ms 7620 KB Output isn't correct - Wrong Answer [9]
19 Correct 54 ms 6600 KB Output isn't correct - L = 160
20 Correct 66 ms 8004 KB Output isn't correct - L = 160
21 Incorrect 82 ms 7772 KB Output isn't correct - Wrong Answer [9]
22 Correct 53 ms 6968 KB Output isn't correct - L = 160
23 Correct 53 ms 6968 KB Output isn't correct - L = 160
24 Correct 55 ms 6960 KB Output isn't correct - L = 160