Submission #428145

#TimeUsernameProblemLanguageResultExecution timeMemory
428145MOUF_MAHMALATSplit the Attractions (IOI19_split)C++14
0 / 100
96 ms11720 KiB
#include "split.h"
#include<bits/stdc++.h>
using namespace std;
typedef int ll;
bool b[100009];
ll cnt[100009];
vector<ll>ans;
vector<vector<ll> >v;
pair<ll,ll>id[3];
void dfs(ll d)
{
    if(id[0].first)
        ans[d]=1,id[0].first--;
    else if(id[1].first)
        ans[d]=2,id[1].first--;
    else
        ans[d]=3,id[2].first--;
    b[d]=1;
    for(auto it:v[d])
        if(b[it]==0)
            dfs(it);
}
vector<int> find_split(int n, int a, int b, int c, vector<int> p, vector<int> q)
{
    v.resize(n);
    ans.resize(n);
    id[0]={a,1};
    id[1]={b,2};
    id[2]={c,3};
    sort(id,id+3);
    for(ll i=0; i<p.size(); i++)
    {
        cnt[p[i]]++,cnt[q[i]]++;
        v[p[i]].push_back(q[i]);
        v[q[i]].push_back(p[i]);
    }
    v.resize(n);
    for(ll i=0; i<n; i++)
    {
        if(cnt[i]>1)
            continue;
        dfs(i);
        return ans;
    }
    dfs(0);
    return ans;
}

Compilation message (stderr)

split.cpp: In function 'std::vector<int> find_split(int, int, int, int, std::vector<int>, std::vector<int>)':
split.cpp:31:18: warning: comparison of integer expressions of different signedness: 'll' {aka 'int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   31 |     for(ll i=0; i<p.size(); i++)
      |                 ~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...