제출 #246422

#제출 시각아이디문제언어결과실행 시간메모리
246422dantoh000Pipes (CEOI15_pipes)C++14
컴파일 에러
0 ms0 KiB
#include <utility> #include <vector> #include <algorithm> #include <cstdio> #include <set> using namespace std; typedef pair<int,int> ii; int n,m; int d[100005], pa[100005], sz[100005]; vector<int> G[100005]; set<ii> bad; struct ufds{ int p[100005]; ufds(){ for (int i = 0; i <= 100000; i++) p[i] = i; } int find(int x){ return p[x] == x ? x : p[x] = find(p[x]); } void un(int x, int y){ p[x] = y; } } u1 = ufds(), u2 = ufds(); void dfs(int u, int p){ ///join at side bad u2.p[u] = u; pa[u] = p; for (auto v : G[u]){ if (v == p) continue; else{ d[v] = d[u]+1; pa[v] = u; dfs(v,u); } } } int main(){ scanf("%d%d",&n,&m); for (int i = 0; i < m; i++){ int u,v; scanf("%d%d",&u,&v); int pu = u1.find(u), pv = u1.find(v); //printf("%d -> %d, %d -> %d\n",u,pu,v,pv); if (pu == pv){ //printf("update path %d %d\n",u,v); ///make all edges along this path bad ///all edges along path are only changed once, amortised O(N) u = u2.find(u), v = u2.find(v); while (u != v){ if (d[u] < d[v]) swap(u,v); bad.insert({min(u,pa[u]),max(u,pa[u])}); //printf("bad %d %d\n",u,pa[u]);                u2.un(u, pa[u]);                u = pa[u]; u = u2.find(u); } } else{ //printf("join %d %d\n",u,v); ///join the two components if (sz[pu] < sz[pv]){ swap(pu,pv); swap(u,v); } ///join small v to big u u1.un(pv,pu); sz[pu] += sz[pv]; ///add edge G[u].push_back(v); G[v].push_back(u); ///restart dfs d[v] = d[u]+1; dfs(v,u); } } for (int u = 1; u <= n ;u++){ for (auto v : G[u]){ if (v > u && bad.find({u,v}) == bad.end()){ printf("%d %d\n",u,v); } } } }

컴파일 시 표준 에러 (stderr) 메시지

pipes.cpp:106:1: error: stray '\302' in program
                u2.un(u, pa[u]);
 ^
pipes.cpp:106:2: error: stray '\240' in program
                u2.un(u, pa[u]);
  ^
pipes.cpp:106:4: error: stray '\302' in program
                u2.un(u, pa[u]);
    ^
pipes.cpp:106:5: error: stray '\240' in program
                u2.un(u, pa[u]);
     ^
pipes.cpp:106:7: error: stray '\302' in program
                u2.un(u, pa[u]);
       ^
pipes.cpp:106:8: error: stray '\240' in program
                u2.un(u, pa[u]);
        ^
pipes.cpp:106:10: error: stray '\302' in program
                u2.un(u, pa[u]);
          ^
pipes.cpp:106:11: error: stray '\240' in program
                u2.un(u, pa[u]);
           ^
pipes.cpp:106:13: error: stray '\302' in program
                u2.un(u, pa[u]);
             ^
pipes.cpp:106:14: error: stray '\240' in program
                u2.un(u, pa[u]);
              ^
pipes.cpp:106:16: error: stray '\302' in program
                u2.un(u, pa[u]);
                ^
pipes.cpp:106:17: error: stray '\240' in program
                u2.un(u, pa[u]);
                 ^
pipes.cpp:106:19: error: stray '\302' in program
                u2.un(u, pa[u]);
                   ^
pipes.cpp:106:20: error: stray '\240' in program
                u2.un(u, pa[u]);
                    ^
pipes.cpp:106:22: error: stray '\302' in program
                u2.un(u, pa[u]);
                      ^
pipes.cpp:106:23: error: stray '\240' in program
                u2.un(u, pa[u]);
                       ^
pipes.cpp:108:1: error: stray '\302' in program
                u = pa[u];
 ^
pipes.cpp:108:2: error: stray '\240' in program
                u = pa[u];
  ^
pipes.cpp:108:4: error: stray '\302' in program
                u = pa[u];
    ^
pipes.cpp:108:5: error: stray '\240' in program
                u = pa[u];
     ^
pipes.cpp:108:7: error: stray '\302' in program
                u = pa[u];
       ^
pipes.cpp:108:8: error: stray '\240' in program
                u = pa[u];
        ^
pipes.cpp:108:10: error: stray '\302' in program
                u = pa[u];
          ^
pipes.cpp:108:11: error: stray '\240' in program
                u = pa[u];
           ^
pipes.cpp:108:13: error: stray '\302' in program
                u = pa[u];
             ^
pipes.cpp:108:14: error: stray '\240' in program
                u = pa[u];
              ^
pipes.cpp:108:16: error: stray '\302' in program
                u = pa[u];
                ^
pipes.cpp:108:17: error: stray '\240' in program
                u = pa[u];
                 ^
pipes.cpp:108:19: error: stray '\302' in program
                u = pa[u];
                   ^
pipes.cpp:108:20: error: stray '\240' in program
                u = pa[u];
                    ^
pipes.cpp:108:22: error: stray '\302' in program
                u = pa[u];
                      ^
pipes.cpp:108:23: error: stray '\240' in program
                u = pa[u];
                       ^
pipes.cpp: In function 'int main()':
pipes.cpp:76:6: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
 scanf("%d%d",&n,&m);
 ~~~~~^~~~~~~~~~~~~~
pipes.cpp:82:6: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
 scanf("%d%d",&u,&v);
 ~~~~~^~~~~~~~~~~~~~