답안 #172124

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
172124 2019-12-31T08:01:28 Z davitmarg 어르신 집배원 (BOI14_postmen) C++17
55 / 100
500 ms 52796 KB
/*DavitMarg*/
#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <string>
#include <cstring>
#include <map>
#include <set>
#include <queue>
#include <iomanip>
#include <stack>
#include <cassert>
#include <iterator>
#include <bitset>
#include <fstream>
#define mod 1000000007ll
#define LL long long
#define LD long double
#define MP make_pair
#define PB push_back
#define all(v) v.begin(), v.end()
using namespace std;
;
int n, m;
int used[500005], edge[500005];
vector<pair<int, int>> g[500005];
vector<int> path;

void euler(int v)
{
    while (!g[v].empty())
    {
        int to = g[v].back().first;
        int id = g[v].back().second;
        g[v].pop_back();
        if (used[id])
            continue;
        used[id] = 1;
        euler(to);
    }
    path.PB(v);
}

void add(int a, int b, int id)
{
    g[a].PB(MP(b, id));
    g[b].PB(MP(a, id));
}

void print(vector<int> &s)
{
    while (!s.empty())
    {
        printf("%d ", s.back());
        s.pop_back();
    }
    printf("\n");
}

int main()
{
    cin >> n >> m;
    while (m--)
    {
        int a, b;
        scanf("%d%d", &a, &b);
        add(a, b, m);
    }
    euler(1);

    vector<int> s;
    for (int i = 0; i <= n; i++)
        used[i] = 0;
    for (int i = 0; i < path.size(); i++)
    {
        if (!used[path[i]])
        {
            s.PB(path[i]);
            used[path[i]] = 1;
        }
        else
        {
            printf("%d ", path[i]);
            while (s.back() != path[i])
            {
                printf("%d ", s.back());
                used[s.back()] = 0;
                s.pop_back();
            }
            cout << endl;
        }
    }

    return 0;
}

/*
 
6 6
1 2
1 3
1 4
1 5
3 2
4 5
 
 
 
*/

Compilation message

postmen.cpp: In function 'int main()':
postmen.cpp:75:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i = 0; i < path.size(); i++)
                     ~~^~~~~~~~~~~~~
postmen.cpp:67:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d%d", &a, &b);
         ~~~~~^~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 14 ms 12160 KB Output is correct
2 Correct 12 ms 12160 KB Output is correct
3 Correct 11 ms 12160 KB Output is correct
4 Correct 19 ms 12336 KB Output is correct
5 Correct 12 ms 12160 KB Output is correct
6 Correct 14 ms 12416 KB Output is correct
7 Correct 19 ms 13184 KB Output is correct
8 Correct 14 ms 12288 KB Output is correct
9 Correct 67 ms 18556 KB Output is correct
10 Correct 19 ms 12288 KB Output is correct
11 Correct 16 ms 12288 KB Output is correct
12 Correct 76 ms 18800 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 11 ms 12160 KB Output is correct
2 Correct 14 ms 12160 KB Output is correct
3 Correct 11 ms 12160 KB Output is correct
4 Correct 15 ms 12288 KB Output is correct
5 Correct 13 ms 12160 KB Output is correct
6 Correct 19 ms 12416 KB Output is correct
7 Correct 24 ms 13184 KB Output is correct
8 Correct 17 ms 12288 KB Output is correct
9 Correct 63 ms 18428 KB Output is correct
10 Correct 18 ms 12288 KB Output is correct
11 Correct 14 ms 12288 KB Output is correct
12 Correct 73 ms 18852 KB Output is correct
13 Correct 99 ms 20212 KB Output is correct
14 Correct 166 ms 18520 KB Output is correct
15 Correct 168 ms 19560 KB Output is correct
16 Correct 95 ms 20212 KB Output is correct
17 Correct 161 ms 16596 KB Output is correct
18 Correct 143 ms 18960 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 12 ms 12032 KB Output is correct
2 Correct 15 ms 12032 KB Output is correct
3 Correct 12 ms 12160 KB Output is correct
4 Correct 16 ms 12288 KB Output is correct
5 Correct 12 ms 12160 KB Output is correct
6 Correct 15 ms 12416 KB Output is correct
7 Correct 21 ms 13184 KB Output is correct
8 Correct 16 ms 12160 KB Output is correct
9 Correct 70 ms 18428 KB Output is correct
10 Correct 19 ms 12288 KB Output is correct
11 Correct 18 ms 12288 KB Output is correct
12 Correct 86 ms 18804 KB Output is correct
13 Correct 102 ms 20188 KB Output is correct
14 Correct 153 ms 18408 KB Output is correct
15 Correct 149 ms 19564 KB Output is correct
16 Correct 101 ms 20260 KB Output is correct
17 Correct 180 ms 16648 KB Output is correct
18 Correct 151 ms 18908 KB Output is correct
19 Execution timed out 595 ms 52796 KB Time limit exceeded
20 Halted 0 ms 0 KB -