QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#359713#408. Dungeon 2GoodKnight0 0ms0kbC++202.8kb2024-03-20 20:09:232024-03-20 20:09:25

Judging History

你现在查看的是最新测评结果

  • [2024-03-20 20:09:25]
  • 评测
  • 测评结果:0
  • 用时:0ms
  • 内存:0kb
  • [2024-03-20 20:09:23]
  • 提交

answer

#include<bits/stdc++.h>
#include "dungeon2.h"
using namespace std;
const int N = 52;
struct trasa{
    vector<int> tam;
    vector<int> powrot;
};
struct pokoj{
    int id;
    int color;
    vector<int> koledzy;
    trasa droga;
};
vector<pokoj> lochy;
queue<int> bfs;
int odl[N][N];
int odp[500];
void odpowiedz(int R){
    int n = lochy.size();
    for(int i=1; i<=n; i++){
        for(int j=1; j<=n; j++){
            odl[i][j]=1e9;
        }
        odl[i][i]=0;
        bfs.push(i);
        while(!bfs.empty()){
            int aktu = bfs.front();
            bfs.pop();
            for(auto sas : lochy[aktu].koledzy){
                if (odl[i][sas] >=1e8){
                    odl[i][sas] = odl[i][aktu]+1;
                    bfs.push(sas);
                }
            }
        }
    }
    for(int i=1; i<=n; i++){
        for(int j=i+1; j<=n; j++){
            odp[odl[i][j]]++;
        }
    }
    for(int i=1; i<=R; i++){
        Answer(i, odp[i]);
    }
}

void Inspect (int R){
    pokoj pustypokoj;
    lochy.push_back(pustypokoj);
    pokoj startpokoj;
    startpokoj.id = 1;
    int licznikid = 2;
    startpokoj.color = 1;
    bfs.push(1);
    while(!bfs.empty()){
        int teraz = bfs.front();
        pokoj aktu  = lochy[teraz];
        bfs.pop();
        trasa aktdroga = aktu.droga;
        for(int i : aktdroga.tam){
            Move(i, Color());
        }
        for(int i=1; i<=NumberOfRoads(); i++){
            Move(i, 2);
            if(Color()==1){
                pokoj nowypokoj;
                nowypokoj.color = 2;
                nowypokoj.droga.tam = aktu.droga.tam;
                nowypokoj.droga.tam.push_back(i);
                nowypokoj.droga.powrot.push_back(LastRoad());
                for(auto j : aktu.droga.powrot) nowypokoj.droga.powrot.push_back(j);
                nowypokoj.id = licznikid;
                licznikid++;
                nowypokoj.koledzy.push_back(teraz);
                lochy[teraz].koledzy.push_back(nowypokoj.id);
                bfs.push(nowypokoj.id);
                Move(LastRoad(), 2);
            }
            if(Color()==2){
                Move(LastRoad(), 3);
                int toOn = 0;
                for(auto j : aktdroga.powrot) Move(j, Color());
                for(int j=1; j<lochy.size(); j++){
                    for(int k : lochy[j].droga.tam) Move(k, Color());
                    if(Color()==3){
                        toOn = j;
                    }
                    for(int k : lochy[j].droga.powrot) Move(k, Color());
                }
                lochy[teraz].koledzy.push_back(toOn);
                lochy[toOn].koledzy.push_back(teraz);
            }
        }
        for(auto k : aktdroga.powrot) Move(k, Color());
    }
    odpowiedz(R);
}

詳細信息

Subtask #1:

score: 0
Runtime Error

Test #1:

score: 0
Runtime Error

input:

10 100 50
7
5 7 10 4 6 2 3
2
1 5
3
1 10 7
2
10 1
3
1 9 2
2
1 7
5
9 6 8 3 1
1
7
2
5 7
3
1 4 3
15
24
6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

output:

Unauthorized output

result:


Subtask #2:

score: 0
Runtime Error

Test #16:

score: 0
Runtime Error

input:

10 3 50
4
7 4 10 5
2
8 6
1
10
2
1 9
3
1 7 10
2
7 2
5
6 1 5 8 9
3
7 9 2
4
10 8 7 4
4
1 9 5 3
15
19
9
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

output:

Unauthorized output

result:


Subtask #3:

score: 0
Runtime Error

Test #31:

score: 0
Runtime Error

input:

200 3 200
6
149 79 143 164 179 68
4
44 52 144 113
1
84
3
31 188 166
1
109
4
154 192 125 147
1
198
4
103 27 192 95
3
33 166 179
1
125
3
31 61 150
3
168 152 161
2
67 64
1
136
2
150 17
1
192
2
15 142
2
56 122
1
35
2
97 200
2
129 22
4
72 134 31 21
2
53 82
4
195 181 104 146
1
78
1
88
3
8 78 127
4
152 200...

output:

Unauthorized output

result: