답안 #299461

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
299461 2020-09-15T00:08:36 Z daniel920712 Split the Attractions (IOI19_split) C++14
18 / 100
126 ms 13168 KB
#include "split.h"
#include <vector>

using namespace std;
vector < int > Next[100005];
bool have[100005]={0};
int con[100005]={0};
int a,b,c;
vector<int> res;
int now=-1;
void F(int here)
{
    now++;
    if(now<a) res[here]=1;
    else if(now<a+b) res[here]=2;
    else res[here]=3;
    have[here]=1;
    for(auto i:Next[here]) if(!have[i]) F(i);
}
void F2(int here)
{
    now++;
    if(now<b) res[here]=2;
    else return ;
    have[here]=1;
    for(auto i:Next[here]) if(!have[i]) F2(i);
}
vector<int> find_split(int N, int a, int b, int c, vector<int> p, vector<int> q)
{
    int M=p.size(),i,big=0;
    ::a=a;
    ::b=b;
    ::c=c;
	for(i=0;i<N;i++) res.push_back(0);
	for(i=0;i<M;i++)
    {
        Next[p[i]].push_back(q[i]);
        Next[q[i]].push_back(p[i]);
        con[p[i]]++;
        con[q[i]]++;
        big=max(big,con[p[i]]);
        big=max(big,con[q[i]]);
    }

    if(big==2)
    {
        for(i=0;i<N;i++)
        {
            if(con[i]==1)
            {
                F(i);
                return res;
            }
        }
        F(1);
        return res;
    }
    else if(a==1)
    {
        for(i=0;i<N;i++) res[i]=3;
        F2(0);
        for(i=0;i<N;i++)
        {
            if(res[i]==3)
            {
                res[i]=1;
                break;
            }
        }
        return res;
    }
    else
    {
        return res;
    }
	return res;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 2688 KB ok, correct split
2 Correct 2 ms 2688 KB ok, correct split
3 Correct 2 ms 2688 KB ok, correct split
4 Correct 2 ms 2688 KB ok, correct split
5 Correct 2 ms 2688 KB ok, correct split
6 Correct 2 ms 2688 KB ok, correct split
7 Correct 89 ms 11760 KB ok, correct split
8 Correct 87 ms 11888 KB ok, correct split
9 Correct 97 ms 11804 KB ok, correct split
10 Correct 89 ms 11760 KB ok, correct split
11 Correct 92 ms 11760 KB ok, correct split
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 2688 KB ok, correct split
2 Correct 2 ms 2688 KB ok, correct split
3 Correct 2 ms 2688 KB ok, correct split
4 Correct 101 ms 11504 KB ok, correct split
5 Correct 75 ms 9968 KB ok, correct split
6 Correct 93 ms 12912 KB ok, correct split
7 Correct 95 ms 12912 KB ok, correct split
8 Correct 126 ms 13168 KB ok, correct split
9 Correct 82 ms 9840 KB ok, correct split
10 Correct 58 ms 9840 KB ok, correct split
11 Correct 61 ms 9840 KB ok, correct split
12 Correct 59 ms 10352 KB ok, correct split
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 2816 KB jury found a solution, contestant did not
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 2688 KB jury found a solution, contestant did not
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 2688 KB ok, correct split
2 Correct 2 ms 2688 KB ok, correct split
3 Correct 2 ms 2688 KB ok, correct split
4 Correct 2 ms 2688 KB ok, correct split
5 Correct 2 ms 2688 KB ok, correct split
6 Correct 2 ms 2688 KB ok, correct split
7 Correct 89 ms 11760 KB ok, correct split
8 Correct 87 ms 11888 KB ok, correct split
9 Correct 97 ms 11804 KB ok, correct split
10 Correct 89 ms 11760 KB ok, correct split
11 Correct 92 ms 11760 KB ok, correct split
12 Correct 2 ms 2688 KB ok, correct split
13 Correct 2 ms 2688 KB ok, correct split
14 Correct 2 ms 2688 KB ok, correct split
15 Correct 101 ms 11504 KB ok, correct split
16 Correct 75 ms 9968 KB ok, correct split
17 Correct 93 ms 12912 KB ok, correct split
18 Correct 95 ms 12912 KB ok, correct split
19 Correct 126 ms 13168 KB ok, correct split
20 Correct 82 ms 9840 KB ok, correct split
21 Correct 58 ms 9840 KB ok, correct split
22 Correct 61 ms 9840 KB ok, correct split
23 Correct 59 ms 10352 KB ok, correct split
24 Incorrect 3 ms 2816 KB jury found a solution, contestant did not
25 Halted 0 ms 0 KB -