# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
427579 | TLP39 | Toy Train (IOI17_train) | C++14 | 350 ms | 1228 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "train.h"
#include<bits/stdc++.h>
using namespace std;
int n,m;
vector<int> point_to[5003];
int ori_outdeg[5003]={};
int temp_outdeg[5003];
bool loop[5003];
bool temp_loop[5003];
int cou_loop=0,cou_temp_loop;
bool fin_res[5003];
bool getreach()
{
queue<int> q;
int tt;
for(int i=0;i<n;i++) temp_outdeg[i]=ori_outdeg[i];
for(int i=0;i<n;i++) temp_loop[i]=false;
cou_temp_loop=0;
for(int j=0;j<n;j++)
{
if(!loop[j]) continue;
for(int i=0;i<point_to[j].size();i++)
{
temp_outdeg[point_to[j][i]]--;
if(!temp_outdeg[point_to[j][i]]) q.push(point_to[j][i]);
}
}
while(!q.empty())
{
tt=q.front();
q.pop();
temp_loop[tt]=true;
if(loop[tt])
{
cou_temp_loop++;
continue;
}
for(int i=0;i<point_to[tt].size();i++)
{
temp_outdeg[point_to[tt][i]]--;
if(!temp_outdeg[point_to[tt][i]]) q.push(point_to[tt][i]);
}
}
for(int i=0;i<n;i++) {loop[i]=min(loop[i],temp_loop[i]);fin_res[i]=temp_loop[i];}
int temp2=cou_loop;
cou_loop=cou_temp_loop;
return temp2==cou_temp_loop;
}
std::vector<int> who_wins(std::vector<int> a, std::vector<int> r, std::vector<int> u, std::vector<int> v) {
std::vector<int> res(a.size(),1);
n=a.size();
m=u.size();
for(int i=0;i<m;i++)
{
point_to[v[i]].push_back(u[i]);
ori_outdeg[u[i]]++;
}
for(int i=0;i<n;i++) {loop[i]=r[i]; cou_loop+=r[i];}
for(int i=0;i<n;i++) if(a[i]) ori_outdeg[i]=1;
while(!getreach()) continue;
for(int i=0;i<n;i++)
{
res[i]=fin_res[i];
}
return res;
}
Compilation message (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... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |