Submission #934024

# Submission time Handle Problem Language Result Execution time Memory
934024 2024-02-26T17:17:06 Z Maaxle City (JOI17_city) C++17
8 / 100
383 ms 67584 KB
#include "Encoder.h"
#include <bits/stdc++.h>

#define range(it, a, b) for (ll it = a; it < b; it++)
#define all(x) begin(x), end(x)
#define ll long long
#define ull unsigned long long
#define INF64 ((ll) 1 << 60)
#define INF32 (1 << 30)
#define mset multiset
#define uset unordered_set
#define umap unordered_map 
#define pqueue priority_queue
#define ptr(A) shared_ptr<A>

using namespace std;

ll n;
vector<vector<ll>> adj, range;
vector<ll> euler;

void explore(ll i, ll from) {
    range[i][0] = euler.size();
    euler.push_back(i);

    for (ll k : adj[i]) {
        if (k == from)
            continue;
        explore(k, i);
    }

    range[i][1] = euler.size();
    euler.push_back(i);

    string l = to_string(range[i][0]);
    string r = to_string(range[i][1]);
    while (r.size() < 6)
        r = "0"+r;
    Code(i, stoll(l + r));
}

void Encode(int N, int A[], int B[]) {
    n = N;
    adj.resize(n);
    range.resize(n, vector<ll> (2));
    range(i, 0, n - 1) {
        adj[A[i]].push_back(B[i]);
        adj[B[i]].push_back(A[i]);
    }
    explore(0, 0);
}
#include "Device.h"
#include <bits/stdc++.h>

#define range(it, a, b) for (ll it = a; it < b; it++)
#define all(x) begin(x), end(x)
#define ll long long
#define ull unsigned long long
#define INF64 ((ll) 1 << 60)
#define INF32 (1 << 30)
#define mset multiset
#define uset unordered_set
#define umap unordered_map 
#define pqueue priority_queue
#define ptr(A) shared_ptr<A>

using namespace std;

void InitDevice() { }

int Answer(long long S, long long T) {
    string ss = to_string(S);
    while (ss.size() < 7)
        ss = "0" + ss;

    string ts = to_string(T);
    while (ts.size() < 7)
        ts = "0" + ts;

    ll ind = ss.size() - 6;
    ll sl = stoll(ss.substr(0, ind));
    ll sr = stoll(ss.substr(ind, 6));

    
    ind = ts.size() - 6;
    ll tl = stoll(ts.substr(0, ind));
    ll tr = stoll(ts.substr(ind, 6));

    // cout << sl << ' ' << sr << '\n';
    // cout << tl << ' ' << tr << '\n';

    ll ans;

    if (sl < tl && tr < sr)
        ans = 1;
    else if (tl < sl && sr < tr)
        ans = 0;
    else
        ans = 2;

    // cout << ans << '\n';
    return ans;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 4888 KB Output is correct
2 Correct 1 ms 4892 KB Output is correct
3 Correct 1 ms 4888 KB Output is correct
4 Correct 1 ms 4884 KB Output is correct
5 Correct 1 ms 4884 KB Output is correct
6 Correct 1 ms 4888 KB Output is correct
7 Correct 1 ms 4884 KB Output is correct
8 Correct 1 ms 4880 KB Output is correct
9 Correct 1 ms 4884 KB Output is correct
10 Correct 1 ms 4896 KB Output is correct
11 Correct 2 ms 4884 KB Output is correct
12 Correct 1 ms 4880 KB Output is correct
# Verdict Execution time Memory Grader output
1 Partially correct 162 ms 12444 KB Output is partially correct - L = 1397001398
2 Partially correct 169 ms 18332 KB Output is partially correct - L = 1390001391
3 Partially correct 165 ms 18480 KB Output is partially correct - L = 1394001395
4 Partially correct 170 ms 18524 KB Output is partially correct - L = 1390001391
5 Incorrect 383 ms 67584 KB Output isn't correct - L = 499992499993
6 Halted 0 ms 0 KB -