Submission #244507

#TimeUsernameProblemLanguageResultExecution timeMemory
244507dantoh000Pipes (CEOI15_pipes)C++14
20 / 100
1534 ms65540 KiB
#include <bits/stdc++.h>
using namespace std;
const int mod = 1000000007;
typedef pair<int,int> ii;
int n,m;
map<int,bool> M[30005];
vector<ii> G[30005];
int num[30005];
int p[30005];
int low[30005];
int ct = 1;
void dfs(int u){
    low[u] = num[u] = ct++;
    for (auto v : G[u]){
        if (num[v.first] == 0){
            p[v.first] = u;
            dfs(v.first);
            if (low[v.first] > num[u]){
                if (v.second == 0){
                    printf("%d %d\n",u,v);
                }
            }
            low[u] = min(low[u],low[v.first]);
        }
        else if (v.first != p[u]){
            low[u] = min(low[u],num[v.first]);
        }
    }
}
int main(){
    scanf("%d%d",&n,&m);
    for (int i = 0; i < m; i++){
        int u,v;
        scanf("%d%d",&u,&v);
        if (u > v) swap(u,v);
        if (M[u].count(v)){
            M[u][v] = 1;
        }
        else{
            M[u][v] = 0;
        }
    }
    for (int u = 1; u <= n; u++){
        auto it = M[u].begin();
        while (it != M[u].end()){
            int v = it->first, w = it->second;
            G[u].push_back({v,w});
            G[v].push_back({u,w});
            it = M[u].erase(it);
        }
    }
    for (int i = 1; i <= n; i++){
        if (num[i] == 0){
            dfs(i);
        }
    }
}

Compilation message (stderr)

pipes.cpp: In function 'void dfs(int)':
pipes.cpp:20:41: warning: format '%d' expects argument of type 'int', but argument 3 has type 'std::pair<int, int>' [-Wformat=]
                     printf("%d %d\n",u,v);
                                         ^
pipes.cpp: In function 'int main()':
pipes.cpp:31:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d",&n,&m);
     ~~~~~^~~~~~~~~~~~~~
pipes.cpp:34:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d%d",&u,&v);
         ~~~~~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...