QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#359584 | #408. Dungeon 2 | abc123 | Compile Error | / | / | C++20 | 2.2kb | 2024-03-20 19:16:53 | 2024-03-20 19:16:56 |
Judging History
This is the latest submission verdict.
- [2024-03-20 19:16:56]
- Judged
- Verdict: Compile Error
- Time: 0ms
- Memory: 0kb
- [2024-03-20 19:16:53]
- Submitted
answer
#include <bits/stdc++.h>
#include "dungeon.h"
using namespace std;
#define pii pair<int,int>
vector<int> do_wym[203];
vector<pii> graph[203];
vector<pii> sciezki[203][203];
int matrix[203][203];
int dp[203][203];
int wyn[203];
pii fat[203];
int deg[203];
int wolne=0;
void dfs(int v, int p){
if (v!=1){
fat[v]={LastRoad(),p};
do_wym[v][LastRoad()]=p;
}
deg[v]=NumberOfRoads();
do_wym[v].resize(deg[v]+1);
for (int i = 1; i<=deg[v]; i++){
Move(i,2);
if (Color()==2)Move(LastRoad(),2);
else{
do_wym[v][i]=++wolne;
graph[v].push_back({wolne,i});
dfs(wolne,v);
}
}
if (v!=1)Move(fat[v].first,2);
}
bool build_sciezka(int v, int p, int a, int b){
if (v==b)return true;
for (auto u : graph[v]){
if (v==p)continue;
sciezki[a][b].push_back(u);
if (build_sciezka(u.first,v,a,b))return true;
sciezki[a][b].pop_back();
}
return false;
}
void MyMove(int a, int b){
if (a==b)return;
Move(sciezki[a][b][0].second,Color());
for (int i = 1; i<sciezki[a][b].size(); i++){
Move(sciezki[a][b][i].second,Color());
}
}
void Inspect(int R){
dfs(++wolne,0);
int n=wolne;
for (int i = 1; i<=n; i++){
for (int j = 1; j<=n; j++){
build_sciezka(i,0,i,j);
}
}
int cur=1;
for (int i = 1; i<=n; i++){
MyMove(cur,i);
cur=i;
Move(1,3);
Move(LastRoad(),1);
for (int j = i+1; j<=n; j++){
MyMove(cur,j);
cur=j;
for (int u = 1; u<=deg[cur]; u++){
if (do_wym[cur][u])continue;
Move(u,1);
if (Color()==3){
matrix[i][j]=matrix[j][i]=1;
Move(LastRoad(),3);
}
else Move(LastRoad(),1);
}
}
MyMove(cur,i);
Move(1,1);
Move(LastRoad(),1);
}
for (int i = 1; i<=n; i++){
for (auto u : graph[i])matrix[i][u.first]=matrix[u.first][i]=1;
}
for (int i = 1; i<=n; i++){
for (int j = 1; j<=n; j++){
dp[i][j]=n+2;
if (i==j)dp[i][j]=0;
if (matrix[i][j])dp[i][j]=matrix[i][j];
}
}
for (int k = 1; k<=n; k++){
for (int i = 1; i<=k; i++){
for (int j = 1; j<=k; j++){
dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]);
}
}
}
for (int i = 1; i<=n; i++){
for (int j = i+1; j<=n; j++){
wyn[dp[i][j]]++;
}
}
for (int i = 1; i<=R; i++){
Answer(i,wyn[i]);
}
}
Details
implementer.cpp: In function ‘int main()’: implementer.cpp:94:22: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 94 | scanf("%d", &(n_roads[i])); | ~~~~~^~~~~~~~~~~~~~~~~~~~~ implementer.cpp:98:30: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 98 | scanf("%d", &(road[i][j])); | ~~~~~^~~~~~~~~~~~~~~~~~~~~ implementer.cpp:105:22: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 105 | scanf("%d", &(expected_answer[i])); | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ answer.code:2:10: fatal error: dungeon.h: No such file or directory 2 | #include "dungeon.h" | ^~~~~~~~~~~ compilation terminated.