제출 #309542

#제출 시각아이디문제언어결과실행 시간메모리
309542algorithm16슈퍼트리 잇기 (IOI20_supertrees)C++14
0 / 100
1 ms384 KiB
#include<iostream> #include<vector> #include<set> #include<algorithm> #include "supertrees.h" using namespace std; int parent[1005],d[1005]; vector <vector<int> > sol; set <int> s1; int find_par(int x) { if(parent[x]==x) return x; int par=find_par(parent[x]); parent[x]=par; return par; } void s(int x,int y) { x=find_par(x); y=find_par(y); if(x==y) return; if(d[x]==d[y]) d[x]+=1; if(d[x]>d[y]) parent[y]=x; else parent[x]=y; sol[x][y]=1; sol[y][x]=1; s1.insert(x); s1.insert(y); } int construct(vector <vector<int> > p) { int n=p.size(); for(int i=0;i<n;i++) { parent[i]=i; d[i]=1; sol.push_back({}); for(int j=0;j<n;j++) { sol[i].push_back(0); } } for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { if(i==j) continue; if(p[i][j]==1) s(i,j); } } vector <int> v; for(int i=0;i<n;i++) { v.clear(); for(int j=0;j<n;j++) { if(p[i][j]==2) v.push_back(j); } if(!v.empty()) s(i,v[0]); for(int j=0;j<v.size()-1;j++) { s(v[j],v[j+1]); } if(!v.empty()) s(v.back(),i); } build(sol); return 1; }

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

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