답안 #699852

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
699852 2023-02-18T07:09:04 Z cig32 Amusement Park (JOI17_amusement_park) C++17
0 / 100
25 ms 4348 KB
#include "Joi.h"
#include "bits/stdc++.h"
using namespace std;

vector<int> adj2[12269];
bool vis2[12269];
int val2[12269];
int nxt2;
void dfs2(int node, long long X, int par) {
  val2[node] = nxt2;
  nxt2 = (nxt2 + 1) % 60;
  long long res = (X & (1ll << val2[node]));
  MessageBoard(node, (res > 0 ? 1 : 0));
  vis2[node] = 1;
  for(int x: adj2[node]) {
    if(!vis2[x]) {
      dfs2(x, X, node);
    }
  }
}
void Joi(int N, int M, int A[], int B[], long long X, int T) {
  for(int i=0; i<M; i++) {
    adj2[A[i]].push_back(B[i]);
    adj2[B[i]].push_back(A[i]);
  }
  for(int i=0; i<N; i++) {
    sort(adj2[i].begin(), adj2[i].end());
  }
  for(int i=0; i<N; i++) {
    vis2[i] = 0;
  }
  dfs2(0, X, -1);
}

#include "Ioi.h"
#include "bits/stdc++.h"
using namespace std;
const int MAXN = 1e4 + 10;
vector<int> adj[MAXN];
bool vis[MAXN];
int val[MAXN];
int nxt;
vector<int> et;
void dfs(int node, int par) {
  val[node] = nxt;
  nxt = (nxt+1) % 60;
  vis[node] = 1;
  et.push_back(node);
  for(int x: adj[node]) {
    if(!vis[x]) {
      dfs(x, node);
      et.push_back(node);
    }
  }
}

long long Ioi(int N, int M, int A[], int B[], int P, int V, int T) {
  for(int i=0; i<M; i++) {
    adj[A[i]].push_back(B[i]);
    adj[B[i]].push_back(A[i]);
  }
  for(int i=0; i<N; i++) {
    sort(adj[i].begin(), adj[i].end());
  }
  for(int i=0; i<N; i++) {
    vis[i] = 0;
  }
  dfs(0, -1);
  long long ans = 0;
  int res[60];
  for(int i=0; i<60; i++) res[i] = 0;
  res[val[P]] = V;
  int l[N];
  for(int i=0; i<N; i++) l[i] = -1;
  for(int i=0; i<et.size(); i++) {
    if(l[et[i]] == -1) l[et[i]] = i;
  }
  int node = P, idx = l[P];
  for(int i=val[P]-1; i>=0; i--) {
    while(idx-1 >= 0 && val[et[idx]] != i) {
      idx--;
      int rm = Move(et[idx]);
      node = et[idx];
      res[val[node]] = rm;
    }
  }
  for(int i=1; i<60; i++) {
    while(idx+1 < et.size() && val[et[idx]] != i) {
      idx++;
      int rm = Move(et[idx]);
      node = et[idx];
      res[val[node]] = rm;
    }
  }
  for(int i=0; i<60; i++) {
    if(res[i]) ans += (1ll << i);
  }
  return ans;
}

Compilation message

Ioi.cpp: In function 'long long int Ioi(int, int, int*, int*, int, int, int)':
Ioi.cpp:41:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   41 |   for(int i=0; i<et.size(); i++) {
      |                ~^~~~~~~~~~
Ioi.cpp:54:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   54 |     while(idx+1 < et.size() && val[et[idx]] != i) {
      |           ~~~~~~^~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 1160 KB Output is correct
2 Incorrect 1 ms 1156 KB Wrong Answer [7]
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 22 ms 4280 KB Output is correct
2 Correct 22 ms 4220 KB Output is correct
3 Correct 22 ms 4216 KB Output is correct
4 Correct 12 ms 3020 KB Output is correct
5 Correct 11 ms 3524 KB Output is correct
6 Correct 12 ms 3368 KB Output is correct
7 Correct 13 ms 3380 KB Output is correct
8 Correct 12 ms 3508 KB Output is correct
9 Correct 15 ms 3628 KB Output is correct
10 Correct 12 ms 3244 KB Output is correct
11 Correct 13 ms 3148 KB Output is correct
12 Correct 12 ms 2980 KB Output is correct
13 Correct 11 ms 2908 KB Output is correct
14 Correct 12 ms 2972 KB Output is correct
15 Correct 12 ms 3044 KB Output is correct
16 Correct 11 ms 2964 KB Output is correct
17 Correct 13 ms 3192 KB Output is correct
18 Correct 12 ms 3108 KB Output is correct
19 Correct 12 ms 3124 KB Output is correct
20 Incorrect 11 ms 3636 KB Wrong Answer [7]
21 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 1152 KB Output is correct
2 Correct 1 ms 1152 KB Output is correct
3 Correct 0 ms 1152 KB Output is correct
4 Correct 2 ms 1564 KB Output is correct
5 Correct 2 ms 1576 KB Output is correct
6 Correct 2 ms 1564 KB Output is correct
7 Correct 2 ms 1568 KB Output is correct
8 Incorrect 2 ms 1572 KB Output isn't correct
9 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Partially correct 25 ms 4172 KB Partially correct
2 Correct 19 ms 4296 KB Output is correct
3 Partially correct 23 ms 4284 KB Partially correct
4 Partially correct 13 ms 3024 KB Partially correct
5 Partially correct 13 ms 3892 KB Partially correct
6 Partially correct 12 ms 3476 KB Partially correct
7 Correct 13 ms 3496 KB Output is correct
8 Correct 13 ms 3412 KB Output is correct
9 Partially correct 12 ms 3352 KB Partially correct
10 Correct 14 ms 3232 KB Output is correct
11 Partially correct 13 ms 3244 KB Partially correct
12 Partially correct 11 ms 2956 KB Partially correct
13 Partially correct 11 ms 2940 KB Partially correct
14 Partially correct 11 ms 3000 KB Partially correct
15 Partially correct 12 ms 3068 KB Partially correct
16 Partially correct 13 ms 2976 KB Partially correct
17 Partially correct 12 ms 3092 KB Partially correct
18 Partially correct 13 ms 3140 KB Partially correct
19 Partially correct 12 ms 3088 KB Partially correct
20 Incorrect 11 ms 3604 KB Wrong Answer [7]
21 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 23 ms 4348 KB Output is correct
2 Incorrect 25 ms 4260 KB Output isn't correct
3 Halted 0 ms 0 KB -