Submission #447358

# Submission time Handle Problem Language Result Execution time Memory
447358 2021-07-26T07:05:59 Z Habib_Assoev Connecting Supertrees (IOI20_supertrees) C++14
11 / 100
258 ms 38188 KB
#include "supertrees.h"
#include<bits/stdc++.h>
#define in freopen ("measurement.in", "r", stdin);
#define out freopen("measurement.out", "w", stdout);
#define ll long long
//#define int long long
#define pf push_front
#define fi first
#define se second
#define speed ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0)
using namespace std ;
long long const N = 1e2 + 7;
long long N1 = 1e9 + 7;
const int MOD = 1e9 + 7;

vector < int > used( 1007 );
vector < int > used1( 1007 );
vector < int > used2( 1007 );
vector < vector < int > > k( 1007 );
vector < int > cz;
void dfs( int u ){
    used[u] = 1;
    //cout << "DFS" << ' ' << u << endl;
    cz.push_back( u );
    for( int i = 0 ; i < k[u].size() ; i ++ ){
        ll tr = k[u][i];
        if( used[tr] == 0 ){
            dfs( tr );
        }
    }
}

int construct(std::vector<std::vector<int>> p) {
	int n = p.size();
	std::vector<std::vector<int>> answer;

    for( int i = 0 ; i < n ; i ++ ){
        for( int j = 0 ; j < n ; j ++ ){
            if( p[i][j] == 1 ){
                used2[i] = 1, used2[j] = 1;
                k[j].push_back( i );
                k[i].push_back( j );
            }
        }
    }
    ll a[n][n];
    for( int i = 0 ; i < n ; i ++ ){
        for( int j = 0 ; j < n ; j ++ ){
            a[i][j] = 0;
        }
    }
    ll check = 0;
    for( int i = 0 ; i < n ; i ++ ){
        if( used2[i] == 1 && used[i] == 0 ){
            if( cz.size() > 0 ){
                for( int j = 1 ; j < cz.size() ; j ++ ){
                    a[cz[j]][cz[j-1]] = 1;
                    a[cz[j-1]][cz[j]] = 1;
                }
                for( int j = 0 ; j < cz.size(); j ++ ){
                    for( int h = 0 ; h < cz.size(); h ++ ){
                        if( j != h ){
                           // cout << cz[j] << ' ' << cz[h] << endl;
                            if( p[cz[j]][cz[h]] != a[cz[h]][cz[j]] ){
                                check = 1;
                                break;
                            }
                        }
                    }
                }
                cz.clear();
            }
            dfs( i );
        }
    }
    if( cz.size() > 0 ){
        for( int j = 1 ; j < cz.size() ; j ++ ){
            a[cz[j]][cz[j-1]] = 1;
            a[cz[j-1]][cz[j]] = 1;
        }
        for( int j = 0 ; j < cz.size(); j ++ ){
            for( int h = 0 ; h < cz.size(); h ++ ){
                if( j != h ){
                    //cout << cz[j] << ' ' << cz[h] << endl;
                    //cout << p[cz[j]][cz[h]] << endl;
                    if( p[cz[j]][cz[h]] != 1 ){
                        check = 1;
                        break;
                    }
                }
            }
        }
        cz.clear();
    }
	for (int i = 0; i < n; i++) {
		std::vector<int> row;
		row.resize(n);
        for( int j = 0 ; j < n ; j ++ ){
            row[j] = a[i][j];
        }
		answer.push_back(row);
	}
	if( check == 0 ){
        build(answer);
        return 1;
	}else{
        return 0;
	}
}

/*

4
0 0 0 1
0 0 1 0
0 1 0 0
1 0 0 0

*/

Compilation message

supertrees.cpp: In function 'void dfs(int)':
supertrees.cpp:25:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   25 |     for( int i = 0 ; i < k[u].size() ; i ++ ){
      |                      ~~^~~~~~~~~~~~~
supertrees.cpp: In function 'int construct(std::vector<std::vector<int> >)':
supertrees.cpp:56:36: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   56 |                 for( int j = 1 ; j < cz.size() ; j ++ ){
      |                                  ~~^~~~~~~~~~~
supertrees.cpp:60:36: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   60 |                 for( int j = 0 ; j < cz.size(); j ++ ){
      |                                  ~~^~~~~~~~~~~
supertrees.cpp:61:40: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   61 |                     for( int h = 0 ; h < cz.size(); h ++ ){
      |                                      ~~^~~~~~~~~~~
supertrees.cpp:77:28: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   77 |         for( int j = 1 ; j < cz.size() ; j ++ ){
      |                          ~~^~~~~~~~~~~
supertrees.cpp:81:28: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   81 |         for( int j = 0 ; j < cz.size(); j ++ ){
      |                          ~~^~~~~~~~~~~
supertrees.cpp:82:32: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   82 |             for( int h = 0 ; h < cz.size(); h ++ ){
      |                              ~~^~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
3 Correct 0 ms 332 KB Output is correct
4 Correct 0 ms 216 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
6 Correct 13 ms 1996 KB Output is correct
7 Correct 258 ms 38188 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
3 Correct 0 ms 332 KB Output is correct
4 Correct 0 ms 216 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
6 Correct 13 ms 1996 KB Output is correct
7 Correct 258 ms 38188 KB Output is correct
8 Correct 1 ms 332 KB Output is correct
9 Correct 1 ms 204 KB Output is correct
10 Correct 1 ms 332 KB Output is correct
11 Correct 1 ms 332 KB Output is correct
12 Correct 11 ms 1624 KB Output is correct
13 Correct 257 ms 31808 KB Output is correct
14 Correct 1 ms 204 KB Output is correct
15 Correct 1 ms 332 KB Output is correct
16 Correct 6 ms 1356 KB Output is correct
17 Correct 146 ms 27284 KB Output is correct
18 Correct 1 ms 332 KB Output is correct
19 Correct 1 ms 332 KB Output is correct
20 Incorrect 29 ms 5828 KB Answer gives possible 0 while actual possible 1
21 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 332 KB Output is correct
2 Correct 0 ms 328 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Incorrect 1 ms 332 KB Answer gives possible 1 while actual possible 0
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 328 KB Output is correct
2 Incorrect 0 ms 332 KB Too few ways to get from 0 to 1, should be 2 found 0
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
3 Correct 0 ms 332 KB Output is correct
4 Correct 0 ms 216 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
6 Correct 13 ms 1996 KB Output is correct
7 Correct 258 ms 38188 KB Output is correct
8 Correct 1 ms 332 KB Output is correct
9 Correct 1 ms 204 KB Output is correct
10 Correct 1 ms 332 KB Output is correct
11 Correct 1 ms 332 KB Output is correct
12 Correct 11 ms 1624 KB Output is correct
13 Correct 257 ms 31808 KB Output is correct
14 Correct 1 ms 204 KB Output is correct
15 Correct 1 ms 332 KB Output is correct
16 Correct 6 ms 1356 KB Output is correct
17 Correct 146 ms 27284 KB Output is correct
18 Correct 1 ms 332 KB Output is correct
19 Correct 1 ms 332 KB Output is correct
20 Incorrect 29 ms 5828 KB Answer gives possible 0 while actual possible 1
21 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
3 Correct 0 ms 332 KB Output is correct
4 Correct 0 ms 216 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
6 Correct 13 ms 1996 KB Output is correct
7 Correct 258 ms 38188 KB Output is correct
8 Correct 1 ms 332 KB Output is correct
9 Correct 1 ms 204 KB Output is correct
10 Correct 1 ms 332 KB Output is correct
11 Correct 1 ms 332 KB Output is correct
12 Correct 11 ms 1624 KB Output is correct
13 Correct 257 ms 31808 KB Output is correct
14 Correct 1 ms 204 KB Output is correct
15 Correct 1 ms 332 KB Output is correct
16 Correct 6 ms 1356 KB Output is correct
17 Correct 146 ms 27284 KB Output is correct
18 Correct 1 ms 332 KB Output is correct
19 Correct 1 ms 332 KB Output is correct
20 Incorrect 29 ms 5828 KB Answer gives possible 0 while actual possible 1
21 Halted 0 ms 0 KB -