답안 #939426

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
939426 2024-03-06T10:54:53 Z Trisanu_Das 봉쇄 시간 (IOI23_closing) C++17
43 / 100
487 ms 88308 KB
#include "closing.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
//#define int long long
#define forn(i,n) for(int i=0; i<(n); ++i)
#define pb push_back
#define pi pair<ll,ll>
#define f first
#define s second 
#define vii(a,n) vector<int> a(n); forn(i,n) cin>>a[i];
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
 
int max_score(int n, int x, int y, ll k, vector<int>u, vector<int>v, vector<int>w) {
 
  #define int ll
  vector<vector<pi>> adj(n);
  vector<map<int,int>> vis(n+1);
  vector<map<int,int>> dist(n+1);
  forn(i,n-1) adj[u[i]].pb({v[i],w[i]}), adj[v[i]].pb({u[i],w[i]});
 
  if (1) {
  queue<int> q;
  dist[x][x]=dist[y][y]=0;
 
  q.push(x);
  while (q.size()) {
    auto u = q.front(); q.pop();
    for(auto&e:adj[u]) {
      int v=e.f, w=e.s;
      if (dist[x].count(v)) continue;
      dist[x][v]=dist[x][u]+w;
      q.push(v);
    }
  }
 
  swap(x,y);
  q.push(x);
  while (q.size()) {
    auto u = q.front(); q.pop();
    for(auto&e:adj[u]) {
      int v=e.f, w=e.s;
      if (dist[x].count(v)) continue;
      dist[x][v]=dist[x][u]+w;
      q.push(v);
    }
  }
  swap(x,y);
  } 
 
  int ans=0;
  set<pair<int,pi>> q;
  q.insert({0,{x,x}});
  q.insert({0,{y,y}});
 
  vector<int> c(n);
 
  vector<map<int,pair<int,pi>>> last(n);
  vector<map<int,int>> in(n);
  last[x][x]={0,{x,x}};
  last[y][y]={0,{y,y}};
  in[x][x]=1;
  in[y][y]=1;
 
  while (q.size()) {
    auto it = *q.begin(); q.erase(q.begin());
    if (it.f > k) return ans;
    int d = it.f, u = it.s.f, z = it.s.s;
    ++ans;
    k-=d;
    c[u] = max(c[u], dist[z][u]);
    vis[z][u]=1;
 
    in[z][u]=0;
    if (in[x][u]) {
      q.erase(last[x][u]);
      q.insert({max(dist[x][u]-c[u],0ll),{u,x}});
      last[x][u] = {max(dist[x][u]-c[u],0ll),{u,x}};
    }
    if (in[y][u]) {
      q.erase(last[y][u]);
      q.insert({max(dist[y][u]-c[u],0ll),{u,y}});
      last[y][u] = {max(dist[y][u]-c[u],0ll),{u,y}};
    }
 
    for(auto&e:adj[u]) {
      int v=e.f;
      if (vis[z][v]) continue;
      int t = dist[z][v];
      t = max(t-c[v],0ll);
      q.insert({t,{v,z}});
      in[z][v]=1;
      last[z][v]={t,{v,z}};
    }
  }
  return ans;
 
  #undef int
 
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 452 ms 87784 KB Output is correct
2 Correct 487 ms 88308 KB Output is correct
3 Correct 181 ms 5832 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 1 ms 344 KB Output is correct
3 Correct 1 ms 500 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 1 ms 600 KB Output is correct
7 Correct 0 ms 344 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 1 ms 348 KB Output is correct
11 Correct 1 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 1 ms 344 KB Output is correct
3 Correct 1 ms 500 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 1 ms 600 KB Output is correct
7 Correct 0 ms 344 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 1 ms 348 KB Output is correct
11 Correct 1 ms 348 KB Output is correct
12 Correct 1 ms 348 KB Output is correct
13 Correct 0 ms 436 KB Output is correct
14 Correct 1 ms 348 KB Output is correct
15 Correct 1 ms 348 KB Output is correct
16 Correct 1 ms 440 KB Output is correct
17 Correct 1 ms 348 KB Output is correct
18 Correct 1 ms 344 KB Output is correct
19 Correct 1 ms 604 KB Output is correct
20 Correct 1 ms 604 KB Output is correct
21 Correct 1 ms 604 KB Output is correct
22 Correct 1 ms 604 KB Output is correct
23 Correct 1 ms 696 KB Output is correct
24 Correct 1 ms 616 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 1 ms 344 KB Output is correct
3 Correct 1 ms 500 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 1 ms 600 KB Output is correct
7 Correct 0 ms 344 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 1 ms 348 KB Output is correct
11 Correct 1 ms 348 KB Output is correct
12 Correct 1 ms 348 KB Output is correct
13 Correct 0 ms 436 KB Output is correct
14 Correct 1 ms 348 KB Output is correct
15 Correct 1 ms 348 KB Output is correct
16 Correct 1 ms 440 KB Output is correct
17 Correct 1 ms 348 KB Output is correct
18 Correct 1 ms 344 KB Output is correct
19 Correct 1 ms 604 KB Output is correct
20 Correct 1 ms 604 KB Output is correct
21 Correct 1 ms 604 KB Output is correct
22 Correct 1 ms 604 KB Output is correct
23 Correct 1 ms 696 KB Output is correct
24 Correct 1 ms 616 KB Output is correct
25 Correct 6 ms 344 KB Output is correct
26 Correct 6 ms 2648 KB Output is correct
27 Correct 3 ms 1624 KB Output is correct
28 Correct 8 ms 2652 KB Output is correct
29 Correct 7 ms 2648 KB Output is correct
30 Correct 2 ms 1628 KB Output is correct
31 Correct 5 ms 2240 KB Output is correct
32 Correct 5 ms 2396 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 344 KB Output is correct
4 Correct 1 ms 500 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Incorrect 0 ms 344 KB 1st lines differ - on the 1st token, expected: '6', found: '5'
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 344 KB Output is correct
4 Correct 1 ms 500 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 1 ms 600 KB Output is correct
8 Correct 0 ms 344 KB Output is correct
9 Correct 1 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 1 ms 348 KB Output is correct
12 Correct 1 ms 348 KB Output is correct
13 Correct 1 ms 348 KB Output is correct
14 Correct 0 ms 436 KB Output is correct
15 Correct 1 ms 348 KB Output is correct
16 Correct 1 ms 348 KB Output is correct
17 Correct 1 ms 440 KB Output is correct
18 Correct 1 ms 348 KB Output is correct
19 Incorrect 0 ms 344 KB 1st lines differ - on the 1st token, expected: '6', found: '5'
20 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 344 KB Output is correct
4 Correct 1 ms 500 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 1 ms 600 KB Output is correct
8 Correct 0 ms 344 KB Output is correct
9 Correct 1 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 1 ms 348 KB Output is correct
12 Correct 1 ms 348 KB Output is correct
13 Correct 1 ms 348 KB Output is correct
14 Correct 0 ms 436 KB Output is correct
15 Correct 1 ms 348 KB Output is correct
16 Correct 1 ms 348 KB Output is correct
17 Correct 1 ms 440 KB Output is correct
18 Correct 1 ms 348 KB Output is correct
19 Correct 1 ms 344 KB Output is correct
20 Correct 1 ms 604 KB Output is correct
21 Correct 1 ms 604 KB Output is correct
22 Correct 1 ms 604 KB Output is correct
23 Correct 1 ms 604 KB Output is correct
24 Correct 1 ms 696 KB Output is correct
25 Correct 1 ms 616 KB Output is correct
26 Incorrect 0 ms 344 KB 1st lines differ - on the 1st token, expected: '6', found: '5'
27 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 344 KB Output is correct
4 Correct 1 ms 500 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 1 ms 600 KB Output is correct
8 Correct 0 ms 344 KB Output is correct
9 Correct 1 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 1 ms 348 KB Output is correct
12 Correct 1 ms 348 KB Output is correct
13 Correct 1 ms 348 KB Output is correct
14 Correct 0 ms 436 KB Output is correct
15 Correct 1 ms 348 KB Output is correct
16 Correct 1 ms 348 KB Output is correct
17 Correct 1 ms 440 KB Output is correct
18 Correct 1 ms 348 KB Output is correct
19 Correct 1 ms 344 KB Output is correct
20 Correct 1 ms 604 KB Output is correct
21 Correct 1 ms 604 KB Output is correct
22 Correct 1 ms 604 KB Output is correct
23 Correct 1 ms 604 KB Output is correct
24 Correct 1 ms 696 KB Output is correct
25 Correct 1 ms 616 KB Output is correct
26 Correct 6 ms 344 KB Output is correct
27 Correct 6 ms 2648 KB Output is correct
28 Correct 3 ms 1624 KB Output is correct
29 Correct 8 ms 2652 KB Output is correct
30 Correct 7 ms 2648 KB Output is correct
31 Correct 2 ms 1628 KB Output is correct
32 Correct 5 ms 2240 KB Output is correct
33 Correct 5 ms 2396 KB Output is correct
34 Incorrect 0 ms 344 KB 1st lines differ - on the 1st token, expected: '6', found: '5'
35 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 344 KB Output is correct
4 Correct 1 ms 500 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 1 ms 600 KB Output is correct
8 Correct 0 ms 344 KB Output is correct
9 Correct 1 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 1 ms 348 KB Output is correct
12 Correct 1 ms 348 KB Output is correct
13 Correct 1 ms 348 KB Output is correct
14 Correct 0 ms 436 KB Output is correct
15 Correct 1 ms 348 KB Output is correct
16 Correct 1 ms 348 KB Output is correct
17 Correct 1 ms 440 KB Output is correct
18 Correct 1 ms 348 KB Output is correct
19 Correct 1 ms 344 KB Output is correct
20 Correct 1 ms 604 KB Output is correct
21 Correct 1 ms 604 KB Output is correct
22 Correct 1 ms 604 KB Output is correct
23 Correct 1 ms 604 KB Output is correct
24 Correct 1 ms 696 KB Output is correct
25 Correct 1 ms 616 KB Output is correct
26 Correct 6 ms 344 KB Output is correct
27 Correct 6 ms 2648 KB Output is correct
28 Correct 3 ms 1624 KB Output is correct
29 Correct 8 ms 2652 KB Output is correct
30 Correct 7 ms 2648 KB Output is correct
31 Correct 2 ms 1628 KB Output is correct
32 Correct 5 ms 2240 KB Output is correct
33 Correct 5 ms 2396 KB Output is correct
34 Incorrect 0 ms 344 KB 1st lines differ - on the 1st token, expected: '6', found: '5'
35 Halted 0 ms 0 KB -