Submission #107736

# Submission time Handle Problem Language Result Execution time Memory
107736 2019-04-25T15:10:47 Z patrikpavic2 Senior Postmen (BOI14_postmen) C++17
55 / 100
500 ms 54720 KB
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <ctime>
#include <algorithm>
#include <stack>
#include <set>
#include <vector>
#include <iostream>
#include <queue>
#include <map>

#define X first
#define Y second
#define PB push_back
#define P push

using namespace std;

typedef long long ll;
typedef long double ld;
typedef pair < int, int > pii;
typedef vector < int > vi;
typedef set < int > si;

const int N = 5e5 + 5;
const int M = 1e6 + 500;
const int INF = 0x3f3f3f3f;
const int MOD = 1e9 + 7;
const int OFF = (1 << 18);
const int LOG = 20;
const double EPS = 1e-9;
const double PI = 3.1415926535;

int bio[N], n, m, nod[N],ind[N];
vector < pii > v[N];
vector < int > st;
vi tura;

void euler(int x){
    for(;ind[x] < v[x].size();ind[x]++){
        if(bio[v[x][ind[x]].Y]) continue;
        bio[v[x][ind[x]].Y] = 1;
        int nxt = v[x][ind[x]].X;
        euler(nxt);
    }
    tura.PB(x);
}

void rastavi(){
    memset(bio, 0, sizeof(bio));
    for(int i = 0;i < tura.size();i++){
        if(bio[tura[i]]){
            while(st.back() != tura[i]){
                printf("%d ", st.back());
                bio[st.back()]--;
                st.pop_back();
            }
            st.pop_back();
            bio[tura[i]]--;
            printf("%d\n", tura[i]);
        }
        st.PB(tura[i]);
        bio[tura[i]]++;
    }
}

int main(){
    scanf("%d%d", &n, &m);
    for(int i = 0;i < m;i++){
        int x, y; scanf("%d%d", &x, &y);
        v[x].PB({y, i});
        v[y].PB({x, i});
    }
    euler(1);
    rastavi();
    return 0;
}

Compilation message

postmen.cpp: In function 'void euler(int)':
postmen.cpp:41:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(;ind[x] < v[x].size();ind[x]++){
          ~~~~~~~^~~~~~~~~~~~~
postmen.cpp: In function 'void rastavi()':
postmen.cpp:52:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = 0;i < tura.size();i++){
                   ~~^~~~~~~~~~~~~
postmen.cpp: In function 'int main()':
postmen.cpp:69:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d", &n, &m);
     ~~~~~^~~~~~~~~~~~~~~~
postmen.cpp:71:24: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         int x, y; scanf("%d%d", &x, &y);
                   ~~~~~^~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 15 ms 14056 KB Output is correct
2 Correct 13 ms 13952 KB Output is correct
3 Correct 16 ms 13952 KB Output is correct
4 Correct 18 ms 14208 KB Output is correct
5 Correct 16 ms 14060 KB Output is correct
6 Correct 16 ms 14336 KB Output is correct
7 Correct 20 ms 15104 KB Output is correct
8 Correct 14 ms 14260 KB Output is correct
9 Correct 62 ms 19944 KB Output is correct
10 Correct 15 ms 14208 KB Output is correct
11 Correct 16 ms 14208 KB Output is correct
12 Correct 78 ms 20288 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 18 ms 14080 KB Output is correct
2 Correct 12 ms 13952 KB Output is correct
3 Correct 14 ms 14080 KB Output is correct
4 Correct 15 ms 14208 KB Output is correct
5 Correct 13 ms 14080 KB Output is correct
6 Correct 15 ms 14336 KB Output is correct
7 Correct 20 ms 15104 KB Output is correct
8 Correct 17 ms 14208 KB Output is correct
9 Correct 64 ms 19948 KB Output is correct
10 Correct 14 ms 14208 KB Output is correct
11 Correct 14 ms 14208 KB Output is correct
12 Correct 65 ms 20340 KB Output is correct
13 Correct 107 ms 22132 KB Output is correct
14 Correct 108 ms 20188 KB Output is correct
15 Correct 76 ms 21352 KB Output is correct
16 Correct 95 ms 22240 KB Output is correct
17 Correct 99 ms 18448 KB Output is correct
18 Correct 105 ms 20792 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 12 ms 14080 KB Output is correct
2 Correct 12 ms 13952 KB Output is correct
3 Correct 15 ms 13952 KB Output is correct
4 Correct 15 ms 14208 KB Output is correct
5 Correct 16 ms 14092 KB Output is correct
6 Correct 14 ms 14336 KB Output is correct
7 Correct 27 ms 15104 KB Output is correct
8 Correct 16 ms 14184 KB Output is correct
9 Correct 64 ms 20012 KB Output is correct
10 Correct 14 ms 14132 KB Output is correct
11 Correct 14 ms 14208 KB Output is correct
12 Correct 64 ms 20340 KB Output is correct
13 Correct 97 ms 22236 KB Output is correct
14 Correct 98 ms 20180 KB Output is correct
15 Correct 84 ms 21460 KB Output is correct
16 Correct 109 ms 22132 KB Output is correct
17 Correct 88 ms 18548 KB Output is correct
18 Correct 85 ms 20724 KB Output is correct
19 Execution timed out 588 ms 54720 KB Time limit exceeded
20 Halted 0 ms 0 KB -