답안 #31554

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
31554 2017-08-29T08:23:04 Z Kanvie 어르신 집배원 (BOI14_postmen) C++14
38 / 100
500 ms 16460 KB
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
typedef pair<int,int> pii;
int n,m,vv,u,cnt,lol;
vector<pii>v[500001];
bool visit[500001],fi,edge[500001];
stack<int>s,ss;
inline bool chk(int x)
{
    if(!edge[x]){edge[x]=true;return true;}
    else return false;
}
int read_int(){
    char c;
    bool check = 0;
    int res = 0;
    while(1){
        c = getchar();
        if (c == '-') {check = 1; continue;}
        if (c == ' ' || c == '\n') break;
        res = res*10 + c - '0';
    }
    if (check) return -res;
    return res;
}
void push_db(int x)
{
    if(!visit[x])
    {
        ss.push(x);
        visit[x]=true;
        return;
    }
    else
    {
        if(fi)printf("\n");
        else fi=true;
        while(1)
        {
            lol=ss.top();
            if(lol!=x)printf("%d ",lol);
            else printf("%d",lol);
            if(lol!=x){visit[lol]=false;ss.pop();}
            else break;
        }
    }
}
int x,y;
int main()
{
    ios_base::sync_with_stdio(false);
    n=read_int();
    m=read_int();
    for(int i=1;i<=m;++i)
    {
        x=read_int();
        y=read_int();
        ++cnt;
        v[x].push_back({y,cnt});
        v[y].push_back({x,cnt});
    }
    s.push(1);
    fi=false;
    while(!s.empty())
    {
        u=s.top();
        for(int i=0;i<v[u].size();++i)
        {
            vv=v[u][i].fi;
            if(chk(v[u][i].se))break;
            if(i==v[u].size()-1)vv=-1;
        }
        if(vv!=-1)s.push(vv);
        else {s.pop();push_db(u);}
    }
}

Compilation message

postmen.cpp: In function 'int main()':
postmen.cpp:69:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int i=0;i<v[u].size();++i)
                     ~^~~~~~~~~~~~
postmen.cpp:73:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             if(i==v[u].size()-1)vv=-1;
                ~^~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 11 ms 12160 KB Output is correct
2 Correct 11 ms 12032 KB Output is correct
3 Correct 17 ms 12160 KB Output is correct
4 Correct 19 ms 12288 KB Output is correct
5 Correct 11 ms 12116 KB Output is correct
6 Correct 14 ms 12260 KB Output is correct
7 Correct 20 ms 12672 KB Output is correct
8 Correct 15 ms 12160 KB Output is correct
9 Correct 130 ms 14840 KB Output is correct
10 Correct 12 ms 12160 KB Output is correct
11 Correct 12 ms 12160 KB Output is correct
12 Correct 64 ms 15100 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 12 ms 12160 KB Output is correct
2 Correct 13 ms 12032 KB Output is correct
3 Correct 12 ms 12032 KB Output is correct
4 Correct 21 ms 12340 KB Output is correct
5 Correct 12 ms 12160 KB Output is correct
6 Correct 16 ms 12288 KB Output is correct
7 Correct 20 ms 12676 KB Output is correct
8 Correct 11 ms 12160 KB Output is correct
9 Correct 133 ms 14816 KB Output is correct
10 Correct 14 ms 12160 KB Output is correct
11 Correct 12 ms 12160 KB Output is correct
12 Correct 67 ms 15096 KB Output is correct
13 Correct 75 ms 16384 KB Output is correct
14 Correct 81 ms 16120 KB Output is correct
15 Execution timed out 1072 ms 15544 KB Time limit exceeded
16 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 19 ms 12032 KB Output is correct
2 Correct 13 ms 12228 KB Output is correct
3 Correct 11 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 14 ms 12288 KB Output is correct
7 Correct 28 ms 12672 KB Output is correct
8 Correct 14 ms 12160 KB Output is correct
9 Correct 140 ms 14868 KB Output is correct
10 Correct 13 ms 12160 KB Output is correct
11 Correct 13 ms 12160 KB Output is correct
12 Correct 69 ms 15224 KB Output is correct
13 Correct 107 ms 16460 KB Output is correct
14 Correct 75 ms 16120 KB Output is correct
15 Execution timed out 1081 ms 15436 KB Time limit exceeded
16 Halted 0 ms 0 KB -