제출 #300693

#제출 시각아이디문제언어결과실행 시간메모리
300693haojiandan슈퍼트리 잇기 (IOI20_supertrees)C++14
40 / 100
250 ms22264 KiB
#include "supertrees.h" #include <bits/stdc++.h> using namespace std; const int maxn=1010; queue<int> q,q2; bool vis[maxn]; int fa[maxn],line[maxn]; int construct(vector<vector<int> > p) { int n = p.size(); vector<vector<int> > ans; for (int i = 0; i < n; i++) { vector<int> row; row.resize(n); ans.push_back(row); } for (int i=0;i<n;i++) for (int j=0;j<n;j++) if (p[i][j]==3) return 0; int lst; for (int i=0;i<n;i++) if (!vis[i]) { q.push(i); vis[i]=1; vector<int> circle; circle.clear(); while (!q.empty()) { int u=q.front(); q.pop(); circle.push_back(u); q2.push(u); lst=-1; while (!q2.empty()) { int v=q2.front(); q2.pop(); vis[v]=1; //printf("%d %d %d\n",i,u,v); fa[v]=i,line[v]=u; if (lst>-1) ans[lst][v]=ans[v][lst]=1; lst=v; for (int j=0;j<n;j++) if (!vis[j]) { if (p[v][j]==2) q.push(j),vis[j]=1; else if (p[v][j]==1) q2.push(j),vis[j]=1; } } } if (circle.size()<=1) continue; if (circle.size()==2) return 0; circle.push_back(circle[0]); for (int j=0;j<circle.size()-1;j++) ans[circle[j]][circle[j+1]]=ans[circle[j+1]][circle[j]]=1; } for (int i=0;i<n;i++) for (int j=0;j<n;j++) { if (p[i][j]==0) { if (fa[i]==fa[j]) return 0; } if (p[i][j]==1) { if (line[i]!=line[j]) return 0; } if (p[i][j]==2) { if (fa[i]!=fa[j]) return 0; } } build(ans); return 1; }

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

supertrees.cpp: In function 'int construct(std::vector<std::vector<int> >)':
supertrees.cpp:42:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   42 |   for (int j=0;j<circle.size()-1;j++) ans[circle[j]][circle[j+1]]=ans[circle[j+1]][circle[j]]=1;
      |                ~^~~~~~~~~~~~~~~~
#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...