Submission #97646

# Submission time Handle Problem Language Result Execution time Memory
97646 2019-02-17T15:50:57 Z dalgerok Senior Postmen (BOI14_postmen) C++17
100 / 100
460 ms 55268 KB
#include<bits/stdc++.h>
using namespace std;
 
 
const int N = 5e5 + 5;
 
 
int n, m, x[N], y[N];
vector < int > g[N], q1, q2;
bool used[N];
vector < int > q;
 
 
void dfs(int v){
    while(!g[v].empty()){
        int num = g[v].back();
        g[v].pop_back();
        if(used[num]){
            continue;
        }
        used[num] = true;
        int to = (x[num] ^ v ^ y[num]);
        dfs(to);
    }
    q1.push_back(v);
}
 
inline void read(int &x){
    x = 0;
    char c = getchar_unlocked();
    while(c < '0' || c > '9'){
        c = getchar_unlocked();
    }
    while('0' <= c && c <= '9'){
        x = x * 10 + c - '0';
        c = getchar_unlocked();
    }
}
inline void print(int x){
    int len = 0;
    while(x % 10 == 0){
        len += 1;
        x /= 10;
    }
    int y = 0;
    while(x){
        y = y * 10 + x % 10;
        x /= 10;
    }
    while(y){
        putchar_unlocked('0' + y % 10);
        y /= 10;
    }
    while(len--){
        putchar_unlocked('0');
    }
}
 
int main(){
    read(n);
    read(m);
    for(int i = 1; i <= m; i++){
        read(x[i]);
        read(y[i]);
        g[x[i]].push_back(i);
        g[y[i]].push_back(i);
    }
    dfs(1);
    memset(used, 0, sizeof(used));
    for(int i = 0; i < (int)q1.size(); i++){
        int it = q1[i];
        if(!used[it]){
            used[it] = true;
            q2.push_back(it);
        }
        else{
            while(q2.back() != it){
                print(q2.back());
                putchar_unlocked(' ');
                used[q2.back()] = false;
                q2.pop_back();
            }
            print(it);
            putchar_unlocked('\n');
        }
    }
}
# Verdict Execution time Memory Grader output
1 Correct 13 ms 12544 KB Output is correct
2 Correct 14 ms 12544 KB Output is correct
3 Correct 13 ms 12520 KB Output is correct
4 Correct 14 ms 12800 KB Output is correct
5 Correct 11 ms 12672 KB Output is correct
6 Correct 12 ms 12800 KB Output is correct
7 Correct 13 ms 13568 KB Output is correct
8 Correct 17 ms 12672 KB Output is correct
9 Correct 27 ms 18296 KB Output is correct
10 Correct 14 ms 12672 KB Output is correct
11 Correct 14 ms 12800 KB Output is correct
12 Correct 35 ms 18532 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 18 ms 12544 KB Output is correct
2 Correct 14 ms 12544 KB Output is correct
3 Correct 14 ms 12544 KB Output is correct
4 Correct 15 ms 12800 KB Output is correct
5 Correct 11 ms 12672 KB Output is correct
6 Correct 17 ms 12800 KB Output is correct
7 Correct 14 ms 13568 KB Output is correct
8 Correct 16 ms 12800 KB Output is correct
9 Correct 29 ms 18296 KB Output is correct
10 Correct 16 ms 12672 KB Output is correct
11 Correct 12 ms 12800 KB Output is correct
12 Correct 30 ms 18556 KB Output is correct
13 Correct 55 ms 21108 KB Output is correct
14 Correct 55 ms 18704 KB Output is correct
15 Correct 61 ms 19788 KB Output is correct
16 Correct 61 ms 21108 KB Output is correct
17 Correct 57 ms 17008 KB Output is correct
18 Correct 54 ms 19316 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 13 ms 12544 KB Output is correct
2 Correct 11 ms 12544 KB Output is correct
3 Correct 11 ms 12544 KB Output is correct
4 Correct 18 ms 12800 KB Output is correct
5 Correct 12 ms 12672 KB Output is correct
6 Correct 12 ms 12800 KB Output is correct
7 Correct 22 ms 13568 KB Output is correct
8 Correct 12 ms 12672 KB Output is correct
9 Correct 28 ms 18296 KB Output is correct
10 Correct 13 ms 12672 KB Output is correct
11 Correct 15 ms 12672 KB Output is correct
12 Correct 37 ms 18556 KB Output is correct
13 Correct 66 ms 21108 KB Output is correct
14 Correct 53 ms 18676 KB Output is correct
15 Correct 50 ms 19824 KB Output is correct
16 Correct 61 ms 21108 KB Output is correct
17 Correct 73 ms 17008 KB Output is correct
18 Correct 66 ms 19292 KB Output is correct
19 Correct 453 ms 55264 KB Output is correct
20 Correct 378 ms 43368 KB Output is correct
21 Correct 366 ms 48544 KB Output is correct
22 Correct 437 ms 55268 KB Output is correct
23 Correct 105 ms 40392 KB Output is correct
24 Correct 460 ms 34600 KB Output is correct
25 Correct 438 ms 46252 KB Output is correct