# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
283914 | Nodir_Bobiev | Split the Attractions (IOI19_split) | C++17 | 113 ms | 8952 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 100;
bool sub1 = true, sub2 = true, sub3 = true, sub4 = true;
int n, m, A, B, C;
vector < int > gr[N];
vector < int > Subtask1(){
vector < int > ans(n,0);
int fath = -1, start = 0;
for( int i = 0; i < n; i ++ ){
if( gr[i].size() == 1 )start = i;
}
while( A + B + C > 0 ){
if( A > 0 ){
ans[start] = 1;
A--;
}else if( B > 0 ){
ans[start] = 2;
B --;
}else{
ans[start] = 3;
C --;
}
if( gr[start][0] != fath ){
fath = start;
start = gr[start][0];
}else if( gr[start].size() > 1 ){
fath = start;
start = gr[start][1];
}
}return ans;
}
vector < int > Subtask2(){
return {};
}
vector < int > Subtask3(){
return {};
}
vector < int > Subtask4(){
return {};
}
vector<int> find_split(int nn, int aa, int bb, int cc, vector<int> pp, vector<int> qq) {
n = nn; m = pp.size(); A = aa; B = bb; C = cc;
if( m >= n )sub3 = false;
if( n > 2500 || m > 5000 ) sub4 = false;
if( A > 1 ) sub2 = false;
for( int i = 0; i < m; i ++ ){
gr[pp[i]].push_back(qq[i]);
gr[qq[i]].push_back(pp[i]);
}
for( int i = 0; i < n; i ++ ){
if( gr[i].size() > 2 )sub1 = false;
}
if( sub1 ){
return Subtask1();
}
if( sub2 ){
return Subtask2();
}
if( sub3 ){
return Subtask3();
}
if( sub4 ){
return Subtask4();
}
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |