Submission #259141

# Submission time Handle Problem Language Result Execution time Memory
259141 2020-08-07T08:46:51 Z 반딧불(#5071) 한자 끝말잇기 (JOI14_kanji) C++14
0 / 100
182 ms 14004 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;
            else dist[i][j] = 0;
        }
    }
    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);
//        printf("%d: %lld\n", i, dt[i]);
    }
    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;
            else dist[i][j] = 0;
        }
    }
    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 67 ms 6576 KB Output is correct - L = 160
2 Correct 57 ms 6592 KB Output is correct - L = 160
3 Correct 56 ms 6576 KB Output is correct - L = 160
4 Correct 56 ms 6804 KB Output is correct - L = 160
5 Correct 54 ms 6588 KB Output is correct - L = 160
6 Correct 66 ms 6544 KB Output is correct - L = 160
7 Correct 57 ms 6588 KB Output is correct - L = 160
8 Correct 62 ms 6432 KB Output is correct - L = 160
9 Correct 70 ms 6712 KB Output is correct - L = 160
10 Correct 71 ms 6752 KB Output is correct - L = 160
11 Correct 57 ms 6616 KB Output is correct - L = 160
12 Incorrect 182 ms 13780 KB Output isn't correct - Wrong Answer [9]
13 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 53 ms 6828 KB Output is correct - L = 160
2 Incorrect 55 ms 6888 KB Output isn't correct - Wrong Answer [9]
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 54 ms 6820 KB Output is correct - L = 160
2 Incorrect 54 ms 6908 KB Output isn't correct - Wrong Answer [9]
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 54 ms 6676 KB Output isn't correct - L = 160
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 54 ms 6828 KB Output isn't correct - L = 160
2 Incorrect 56 ms 6884 KB Output isn't correct - Wrong Answer [9]
3 Incorrect 54 ms 6804 KB Output isn't correct - Wrong Answer [9]
4 Correct 68 ms 6836 KB Output isn't correct - L = 160
5 Correct 55 ms 6584 KB Output isn't correct - L = 160
6 Correct 57 ms 7132 KB Output isn't correct - L = 160
7 Incorrect 55 ms 6828 KB Output isn't correct - Wrong Answer [9]
8 Correct 59 ms 6928 KB Output isn't correct - L = 160
9 Correct 52 ms 7196 KB Output isn't correct - L = 160
10 Correct 55 ms 7108 KB Output isn't correct - L = 160
11 Incorrect 52 ms 6936 KB Output isn't correct - Wrong Answer [9]
12 Correct 57 ms 6832 KB Output isn't correct - L = 160
13 Incorrect 182 ms 14004 KB Output isn't correct - Wrong Answer [9]
14 Correct 57 ms 6836 KB Output isn't correct - L = 160
15 Incorrect 55 ms 6964 KB Output isn't correct - Wrong Answer [9]
16 Incorrect 69 ms 6968 KB Output isn't correct - Wrong Answer [9]
17 Incorrect 75 ms 7084 KB Output isn't correct - Wrong Answer [9]
18 Incorrect 82 ms 7360 KB Output isn't correct - Wrong Answer [9]
19 Correct 55 ms 6552 KB Output isn't correct - L = 160
20 Correct 67 ms 7684 KB Output isn't correct - L = 160
21 Incorrect 81 ms 7560 KB Output isn't correct - Wrong Answer [9]
22 Correct 52 ms 6816 KB Output isn't correct - L = 160
23 Correct 53 ms 6816 KB Output isn't correct - L = 160
24 Correct 52 ms 7060 KB Output isn't correct - L = 160