Submission #155197

# Submission time Handle Problem Language Result Execution time Memory
155197 2019-09-27T05:36:07 Z stefdasca Izlet (COI19_izlet) C++14
18 / 100
614 ms 55820 KB
#include<bits/stdc++.h>
using namespace std;
int ed, n, subtask;
int dist[3002][3002];
vector<int>v[3002];
pair<int, int> ans[3002];
int lst;
vector<int>cc;
bool viz[3002];
int cul[3002];
void dfs(int nod)
{
    viz[nod] = 1;
    cc.push_back(nod);
    for(int i = 0; i < v[nod].size(); ++i)
    {
        int vecin = v[nod][i];
        if(!viz[vecin])
            dfs(vecin);
    }
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cin >> subtask;
    cin >> n;
    for(int i = 1; i <= n; ++i)
        for(int j = 1; j <= n; ++j)
            cin >> dist[i][j];
    if(subtask == 1)
    {
        for(int i = 1; i <= n; ++i)
            for(int j = i + 1; j <= n; ++j)
                if(dist[i][j] == 1)
                {
                    v[i].push_back(j);
                    v[j].push_back(i);
                }
        int col = 1;
        for(int i = 1; i <= n; ++i)
            if(!viz[i])
            {
                if(lst)
                    ans[++ed] = {lst, i};
                dfs(i);
                for(int j = 0; j + 1 < cc.size(); ++j)
                    ans[++ed] = {cc[j], cc[j+1]};
                for(int j = 0; j < cc.size(); ++j)
                    cul[cc[j]] = col;
                lst = cc.back();
                cc.clear();
                col = 3 - col;
            }
        for(int i = 1; i <= n; ++i)
            cout << cul[i] << " ";
        cout << '\n';
        for(int i = 1; i <= ed; ++i)
            cout << ans[i].first << " " << ans[i].second << '\n';
    }
    return 0;
}

Compilation message

izlet.cpp: In function 'void dfs(int)':
izlet.cpp:15:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = 0; i < v[nod].size(); ++i)
                    ~~^~~~~~~~~~~~~~~
izlet.cpp: In function 'int main()':
izlet.cpp:47:38: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                 for(int j = 0; j + 1 < cc.size(); ++j)
                                ~~~~~~^~~~~~~~~~~
izlet.cpp:49:34: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                 for(int j = 0; j < cc.size(); ++j)
                                ~~^~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 3 ms 632 KB Output is correct
2 Correct 614 ms 53252 KB Output is correct
3 Correct 610 ms 53408 KB Output is correct
4 Correct 606 ms 54632 KB Output is correct
5 Correct 613 ms 55820 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 594 ms 53384 KB Unexpected end of file - int32 expected
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 3 ms 632 KB Output is correct
2 Correct 614 ms 53252 KB Output is correct
3 Correct 610 ms 53408 KB Output is correct
4 Correct 606 ms 54632 KB Output is correct
5 Correct 613 ms 55820 KB Output is correct
6 Incorrect 594 ms 53384 KB Unexpected end of file - int32 expected
7 Halted 0 ms 0 KB -