제출 #143122

#제출 시각아이디문제언어결과실행 시간메모리
143122Ruxandra985Pipes (CEOI15_pipes)C++14
20 / 100
1103 ms65540 KiB
/// trimit de curiozitate #include <cstdio> #include <vector> #include <set> #include <deque> #include <algorithm> #include <map> #define DIMN 100005 using namespace std; int low[DIMN],bicnx,lvl[DIMN]; deque <int> st; vector <int> v[DIMN]; set <int> sol[DIMN]; map <int,int> mp[DIMN]; int x,f[DIMN]; void dfs2 (int nod,int tt){ int i,vecin; f[nod] = 1; for (i=0;i<v[nod].size();i++){ vecin=v[nod][i]; if (vecin!=tt && !f[vecin]) dfs2(vecin,nod); } } void dfs (int nod,int tt){ int i,vecin; low[nod]=lvl[nod]; st.push_back(nod); for (i=0;i<v[nod].size();i++){ vecin=v[nod][i]; if (vecin==tt) continue; if (lvl[vecin]==0){ lvl[vecin]=1+lvl[nod]; dfs(vecin,nod); low[nod]=min(low[nod],low[vecin]); if (low[vecin]>=lvl[nod]){ // nod e un nod critic bicnx++; do{ x=st.back(); st.pop_back(); sol[bicnx].insert(x); //printf ("%d %d\n",bicnx , x); } while (x!=vecin); sol[bicnx].insert(nod); // printf ("%d %d\n",bicnx , nod); // am scos din stiva muchiile care sunt in subarborele nod->vecin } } else low[nod]=min(low[nod],lvl[vecin]); } } int main() { // freopen ("a.in" , "r" , stdin); // freopen ("a.out" , "w" , stdout); int n,m,i,x,y; scanf ("%d%d",&n,&m); for (i=1;i<=m;i++){ scanf ("%d%d",&x,&y); v[x].push_back(y); v[y].push_back(x); mp[x][y]++; mp[y][x]++; } for (i=1;i<=n;i++){ if (!f[i]){ v[0].push_back(i); dfs2(i,0); } } dfs (0,0); int a,b; for (i=1;i<=bicnx;i++){ if (sol[i].size()==2){ a = *(sol[i].begin()); b = *(sol[i].rbegin()); if (a && b && mp[a][b]==1) printf ("%d %d\n",a,b); } } return 0; }

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

pipes.cpp: In function 'void dfs2(int, int)':
pipes.cpp:20:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (i=0;i<v[nod].size();i++){
              ~^~~~~~~~~~~~~~
pipes.cpp: In function 'void dfs(int, int)':
pipes.cpp:30:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (i=0;i<v[nod].size();i++){
              ~^~~~~~~~~~~~~~
pipes.cpp: In function 'int main()':
pipes.cpp:60:11: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf ("%d%d",&n,&m);
     ~~~~~~^~~~~~~~~~~~~~
pipes.cpp:62:15: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf ("%d%d",&x,&y);
         ~~~~~~^~~~~~~~~~~~~~
#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...