Submission #11590

# Submission time Handle Problem Language Result Execution time Memory
11590 2014-12-03T00:31:06 Z gs14004 Senior Postmen (BOI14_postmen) C++
38 / 100
500 ms 8564 KB
#include <cstdio>
#include <vector>
#include <cstring>
using namespace std;

int n,m;
int st[1000005], back[1000005], link[1000005], v[500005], nex[1000005], sz;

vector<int> cyc, temp;

void add_edge(int s, int e){
    sz++;
    link[sz] = e; back[sz] = st[s]; st[s] = sz; nex[back[sz]] = sz;
    sz++;
    link[sz] = s; back[sz] = st[e]; st[e] = sz; nex[back[sz]] = sz;
}

void f(int x){
    int p = st[x];
    while (p) {
        int pos = link[p];
        int q = (p+1)/2;
        int r = p;
        if(p&1) r++;
        else r--;
        st[x] = p = back[p];
        if(r == st[pos]){
            st[pos] = back[r];
        }
        else{
            int s = nex[r];
            back[s] = back[r];
            nex[back[r]] = s;
        }
        if(!v[q]){
            v[q]=1;
            f(pos);
        }
    }
    cyc.push_back(x);
}

int vis[500005];
int main(){
    scanf("%d %d",&n,&m);
    for (int i=0; i<m; i++) {
        int s,e;
        scanf("%d %d",&s,&e);
        add_edge(s,e);
    }
    f(1);
    for (int i=0; i<cyc.size(); i++) {
        temp.push_back(cyc[i]);
        if(vis[cyc[i]]){
            printf("%d",temp.back());
            temp.pop_back();
            while(temp.back() != cyc[i]){
                printf(" %d",temp.back());
                vis[temp.back()] = 0;
                temp.pop_back();
                if(temp.back() == cyc[i]) printf("\n");
            }
        }
        else vis[cyc[i]] = 1;
    }
}

Compilation message

postmen.cpp: In function 'int main()':
postmen.cpp:52:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i=0; i<cyc.size(); i++) {
                   ~^~~~~~~~~~~
postmen.cpp:45: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:48:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d %d",&s,&e);
         ~~~~~^~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 6 ms 384 KB Output is correct
3 Correct 5 ms 360 KB Output is correct
4 Correct 11 ms 640 KB Output is correct
5 Correct 6 ms 436 KB Output is correct
6 Correct 8 ms 640 KB Output is correct
7 Correct 17 ms 1408 KB Output is correct
8 Correct 6 ms 512 KB Output is correct
9 Correct 208 ms 7244 KB Output is correct
10 Correct 6 ms 512 KB Output is correct
11 Correct 7 ms 512 KB Output is correct
12 Correct 86 ms 7152 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 5 ms 384 KB Output is correct
3 Correct 5 ms 384 KB Output is correct
4 Correct 11 ms 512 KB Output is correct
5 Correct 5 ms 384 KB Output is correct
6 Correct 9 ms 640 KB Output is correct
7 Correct 16 ms 1408 KB Output is correct
8 Correct 6 ms 512 KB Output is correct
9 Correct 206 ms 7064 KB Output is correct
10 Correct 7 ms 512 KB Output is correct
11 Correct 6 ms 512 KB Output is correct
12 Correct 84 ms 7256 KB Output is correct
13 Correct 52 ms 8560 KB Output is correct
14 Correct 52 ms 6640 KB Output is correct
15 Execution timed out 1091 ms 6900 KB Time limit exceeded
16 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 5 ms 384 KB Output is correct
3 Correct 5 ms 384 KB Output is correct
4 Correct 11 ms 512 KB Output is correct
5 Correct 6 ms 512 KB Output is correct
6 Correct 8 ms 616 KB Output is correct
7 Correct 17 ms 1408 KB Output is correct
8 Correct 5 ms 512 KB Output is correct
9 Correct 206 ms 7148 KB Output is correct
10 Correct 6 ms 512 KB Output is correct
11 Correct 12 ms 512 KB Output is correct
12 Correct 94 ms 7188 KB Output is correct
13 Correct 51 ms 8564 KB Output is correct
14 Correct 57 ms 6736 KB Output is correct
15 Execution timed out 1074 ms 6940 KB Time limit exceeded
16 Halted 0 ms 0 KB -