답안 #902876

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
902876 2024-01-11T04:00:20 Z ByeWorld 슈퍼트리 잇기 (IOI20_supertrees) C++14
0 / 100
1 ms 360 KB
#include "supertrees.h"
#include <bits/stdc++.h>
#define ll long long
#define fi first
#define se second
#define pb push_back
#define lb lower_bound
using namespace std;
const int MAXN = 1e3+10;
const double SMALL = 1e-6;
typedef pair<int,int> pii;
typedef pair<pii,int> ipii;

int n;
bool tag[MAXN], done[MAXN];
vector <vector<int>> adj;

void bd(int x, int y){
	adj[x][y] = 1; adj[y][x] = 1;
}

int construct(vector<vector<int>> p) {
	n = p.size();
	vector <int> te(n);
	for(int i=0; i<n; i++) adj.pb(te);

	for(int i = 0; i < n; i++) {
		if(done[i]) continue;
		for(int x=0; x<n; x++) tag[x] = 0;

		vector <int> vec; vec.pb(i); tag[i] = 1;
		for(int j=i+1; j < n; j++){
 
			if(p[i][j] == 1){
				vec.pb(j); tag[j] = 1;
			}	
		}
		//for(auto in : vec) cout << in << "pp\n";
		for(auto in : vec){
			//cout << in << " in\n";
			for(int x=0; x<n; x++){
				if(tag[x] && p[in][x] != 1) return 0; //harusnya 1
				if(!tag[x] && p[in][x] == 1) return 0;
			}
		}
		for(auto x : vec){ // build
			done[x] = 1;
			for(auto y : vec){
				if(x==y) continue;
				bd(x, y);
			}
		}
	}

	for(int i=0; i<n; i++) adj[i][i] = 0;
	build(adj);
	return 1;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 352 KB Output is correct
3 Incorrect 0 ms 356 KB Too many ways to get from 0 to 2, should be 1 found no less than 2
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 352 KB Output is correct
3 Incorrect 0 ms 356 KB Too many ways to get from 0 to 2, should be 1 found no less than 2
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 0 ms 360 KB Output is correct
3 Correct 0 ms 360 KB Output is correct
4 Incorrect 0 ms 352 KB Answer gives possible 1 while actual possible 0
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 356 KB Output is correct
2 Incorrect 1 ms 360 KB Too few ways to get from 0 to 1, should be 2 found 0
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 352 KB Output is correct
3 Incorrect 0 ms 356 KB Too many ways to get from 0 to 2, should be 1 found no less than 2
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 352 KB Output is correct
3 Incorrect 0 ms 356 KB Too many ways to get from 0 to 2, should be 1 found no less than 2
4 Halted 0 ms 0 KB -