제출 #1289656

#제출 시각아이디문제언어결과실행 시간메모리
1289656eri16슈퍼트리 잇기 (IOI20_supertrees)C++20
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h>
#include "supertrees.h"
using namespace std;

void build(vector<vector<int>> v){
    for (int i=0; i<v.size(); i++){
        for (int j=0; j<v.size(); j++){
            cout<<v[i][j]<<' ';
        }
        cout<<"\n";
    }
}

vector <int> fc(int i, vector<vector<int>> p){
    
    vector <int> tm;
    
    for (int j=0; j<p.size(); j++){
        if (p[i][j]==1){
            tm.push_back(j);
        }
    }
    return tm;
}

int ck(int i,vector<vector<int>> p, vector <int> vt){
    int ans=1;
    
    for (int j=0; j<vt.size(); j++){
        if (p[i][vt[j]]==0){ans=0;}
    }
    
    return ans;
}

int construct(vector<vector<int>> p){
    int n=p.size();
    
    vector<vector<int>> arr(n);

    for (int i=0; i<n; i++){
        for (int j=0; j<n; j++){
            if (p[i][j]!=p[j][i]){return 0;}
            arr[i].push_back(0);
        }
    }
    
    vector <vector<int>> tree(n);
    vector <int> visited(n);
    for (int i=0; i<n; i++){visited[i]=0;}
    
    
    int k=0;
    for (int i=0; i<n; i++){
        vector <int> vtm;
        if (visited[i]==0){
            vtm=fc(i,p);
            for (int i=0; i<vtm.size(); i++){
                tree[k].push_back(vtm[i]);
            }
            k++;
        }
    }    
    
    for (int i=0; i<k; i++){
        
        int ans=1;
        
        for (int j=0; j<tree[i].size(); j++){
            ans=ans*ck(tree[i][j],p,tree[i]);
        }
        
        if (ans==0){return 0;}
    }
    
    for (int i=0; i<k; i++){
        for (int j=0; j<tree[i].size()-1; j++){
            arr[tree[i][j]][tree[i][j+1]]=1;
            arr[tree[i][j+1]][tree[i][j]]=1;
        }
    }
    
    build(arr);
    return 1;
}

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

/usr/bin/ld: /tmp/ccnogPms.o: in function `build(std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >)':
grader.cpp:(.text+0x300): multiple definition of `build(std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >)'; /tmp/ccdqcFJ6.o:supertrees.cpp:(.text+0x0): first defined here
collect2: error: ld returned 1 exit status