답안 #675448

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
675448 2022-12-27T09:17:13 Z Sam_a17 자매 도시 (APIO20_swap) C++17
13 / 100
285 ms 15272 KB
#define _CRT_SECURE_NO_WARNINGS
#include <bits/stdc++.h>
//#include "temp.cpp"
#include <cstdio>
using namespace std;
 
#ifndef ONLINE_JUDGE
#define dbg(x) cerr << #x <<" "; print(x); cerr << endl;
#else
#define dbg(x)
#endif
 
#define sz(x) (int)x.size()
#define len(x) (int)x.length()
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define clr(x) (x).clear()
#define uniq(x) x.resize(unique(all(x)) - x.begin());
#define blt __builtin_popcount
 
#define pb push_back
#define popf pop_front
#define popb pop_back
#define ld long double
 
void print(long long t) {cerr << t;}
void print(int t) {cerr << t;}
void print(string t) {cerr << t;}
void print(char t) {cerr << t;}
void print(double t) {cerr << t;}
void print(long double t) {cerr << t;}
void print(unsigned long long t) {cerr << t;}
 
template <class T, class V> void print(pair <T, V> p);
template <class T> void print(vector <T> v);
template <class T> void print(set <T> v);
template <class T, class V> void print(map <T, V> v);
template <class T> void print(multiset <T> v);
template <class T, class V> void print(T v[],V n) {cerr << "["; for(int i = 0; i < n; i++) {print(v[i]); cerr << " "; } cerr << "]";}
template <class T, class V> void print(pair <T, V> p) {cerr << "{"; print(p.first); cerr << ","; print(p.second); cerr << "}";}
template <class T> void print(vector <T> v) {cerr << "[ "; for (T i : v) {print(i); cerr << " ";} cerr << "]";}
template <class T> void print(set <T> v) {cerr << "[ "; for (T i : v) {print(i); cerr << " ";} cerr << "]";}
template <class T> void print(multiset <T> v) {cerr << "[ "; for (T i : v) {print(i); cerr << " ";} cerr << "]";}
template <class T, class V> void print(map <T, V> v) {cerr << "[ "; for (auto i : v) {print(i); cerr << " ";} cerr << "]";}
template <class T> void print(deque <T> v) {cerr << "[ "; for (T i : v) {print(i); cerr << " ";} cerr << "]";}
 
#include <ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;
#define nl '\n'
 
// for random generations
// mt19937 myrand(chrono::steady_clock::now().time_since_epoch().count());
mt19937 myrand(373);
 
// for grid problems
int dx[8] = {-1,0,1,0,1,-1,1,-1};
int dy[8] = {0,1,0,-1,1,1,-1,-1};
 
// lowest / (1 << 17) >= 1e5 / (1 << 18) >= 2e5 / (1 << 21) >= 1e6
void fastIO() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr); cout.tie(nullptr);
}
// file in/out
void setIO(string str = "") {
  fastIO();
 
  if(str == "input") {
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
  } else {
    // freopen("skis.in", "r", stdin);
    // freopen("skis.out", "w", stdout);
  }
}
// Indexed Set  
template <class T> using Tree = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
const int N = 3e5 + 10;
int a[N], n, mx, m;
set<pair<int, int>> st;
bool flag1 = true;

void init(int N, int M, vector<int> U, vector<int> V, vector<int> W) {
  n = N, m = M;
  for(int i = 0; i < M; i++) {
    if(U[i] != 0) {
      flag1 = false;
    }
    st.insert({W[i], V[i]});
    a[V[i]] = W[i];
    mx = max(mx, W[i]);
  }
}

int getMinimumFuelCapacity(int X, int Y) {
  if(flag1) {
    if(X == 0 && n <= 3) {
      return -1;
    } else if(X == 0) {
      int answ = a[Y];
      st.erase({a[Y], Y});
      answ = max(answ, st.begin()->first);
      answ = max(answ, next(st.begin())->first);
      st.insert({a[Y], Y});
      return answ;
    }

    int answ = max(a[X], a[Y]);
    st.erase({a[X], X});
    st.erase({a[Y], Y});

    if(st.empty()) {
      st.insert({a[X], X});
      st.insert({a[Y], Y});
      return -1;
    }

    auto u = st.begin();
    answ = max(answ, u->first);

    st.insert({a[X], X});
    st.insert({a[Y], Y});

    return answ;
  } else {
    if(m == n - 1) {
      return -1;
    } else {
      return mx;
    }
  }
}

Compilation message

swap.cpp: In function 'void setIO(std::string)':
swap.cpp:69:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   69 |     freopen("input.txt", "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
swap.cpp:70:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   70 |     freopen("output.txt", "w", stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 216 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 340 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 1 ms 328 KB Output is correct
8 Correct 1 ms 320 KB Output is correct
9 Correct 49 ms 7780 KB Output is correct
10 Correct 63 ms 9420 KB Output is correct
11 Correct 60 ms 9204 KB Output is correct
12 Correct 76 ms 9804 KB Output is correct
13 Correct 65 ms 9804 KB Output is correct
14 Correct 51 ms 8144 KB Output is correct
15 Correct 112 ms 13628 KB Output is correct
16 Correct 119 ms 13464 KB Output is correct
17 Correct 116 ms 13896 KB Output is correct
18 Correct 116 ms 13876 KB Output is correct
19 Correct 52 ms 6860 KB Output is correct
20 Correct 112 ms 14548 KB Output is correct
21 Correct 111 ms 14652 KB Output is correct
22 Correct 117 ms 15272 KB Output is correct
23 Correct 117 ms 15272 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 265 ms 10344 KB Output is correct
4 Correct 264 ms 10552 KB Output is correct
5 Correct 285 ms 10708 KB Output is correct
6 Correct 264 ms 10416 KB Output is correct
7 Correct 274 ms 10660 KB Output is correct
8 Correct 262 ms 10364 KB Output is correct
9 Correct 273 ms 10412 KB Output is correct
10 Correct 267 ms 10248 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 216 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 340 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 1 ms 328 KB Output is correct
8 Correct 1 ms 320 KB Output is correct
9 Incorrect 0 ms 212 KB Output isn't correct
10 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 216 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 340 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 1 ms 328 KB Output is correct
8 Correct 1 ms 320 KB Output is correct
9 Correct 49 ms 7780 KB Output is correct
10 Correct 63 ms 9420 KB Output is correct
11 Correct 60 ms 9204 KB Output is correct
12 Correct 76 ms 9804 KB Output is correct
13 Correct 65 ms 9804 KB Output is correct
14 Correct 51 ms 8144 KB Output is correct
15 Correct 112 ms 13628 KB Output is correct
16 Correct 119 ms 13464 KB Output is correct
17 Correct 116 ms 13896 KB Output is correct
18 Correct 116 ms 13876 KB Output is correct
19 Correct 265 ms 10344 KB Output is correct
20 Correct 264 ms 10552 KB Output is correct
21 Correct 285 ms 10708 KB Output is correct
22 Correct 264 ms 10416 KB Output is correct
23 Correct 274 ms 10660 KB Output is correct
24 Correct 262 ms 10364 KB Output is correct
25 Correct 273 ms 10412 KB Output is correct
26 Correct 267 ms 10248 KB Output is correct
27 Incorrect 1 ms 340 KB Output isn't correct
28 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -