Submission #934037

# Submission time Handle Problem Language Result Execution time Memory
934037 2024-02-26T17:42:06 Z Maaxle City (JOI17_city) C++17
8 / 100
424 ms 63948 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]);
    while (l.size() <  6)
        l = "0" + l;
    ll sz = range[i][1] - range[i][0];
    Code(i, stoll(to_string(sz) + l));
}

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(ind, 6));
    ll sr = sl + stoll(ss.substr(0, ind));

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

    // cout << ss << ' ' << ts << '\n';
    // 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 0 ms 4892 KB Output is correct
2 Correct 2 ms 4896 KB Output is correct
3 Correct 2 ms 4896 KB Output is correct
4 Correct 2 ms 4896 KB Output is correct
5 Correct 1 ms 4884 KB Output is correct
6 Correct 2 ms 4884 KB Output is correct
7 Correct 1 ms 4884 KB Output is correct
8 Correct 1 ms 4896 KB Output is correct
9 Correct 2 ms 5148 KB Output is correct
10 Correct 1 ms 4896 KB Output is correct
11 Correct 1 ms 4892 KB Output is correct
12 Correct 1 ms 5276 KB Output is correct
# Verdict Execution time Memory Grader output
1 Partially correct 159 ms 12440 KB Output is partially correct - L = 1399000000
2 Partially correct 164 ms 16904 KB Output is partially correct - L = 1397000000
3 Partially correct 164 ms 16756 KB Output is partially correct - L = 1399000000
4 Partially correct 161 ms 16936 KB Output is partially correct - L = 1399000000
5 Incorrect 424 ms 63948 KB Output isn't correct - L = 499999000000
6 Halted 0 ms 0 KB -