답안 #371317

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
371317 2021-02-26T13:00:31 Z stonejjun03 장난감 기차 (IOI17_train) C++14
11 / 100
49 ms 49388 KB
#include "train.h"
#include<bits/stdc++.h>
using namespace std;
typedef long long int ll;
#define pb push_back

ll ans[1010101];
ll chk[1010101];
ll ind[1010101];
ll cnt[1010101];
ll vis[1010101];
ll vis2[1010101];
queue<ll> q;
vector<ll> v[1010101];
vector<ll> rev[1010101];
std::vector<int> who_wins(std::vector<int> a, std::vector<int> r, std::vector<int> u, std::vector<int> s) {
	ll i,j,k,l,m,n=a.size();
	std::vector<int> res(n);
	for(i=0;i<u.size();i++){
		v[u[i]].pb(s[i]);
		rev[s[i]].pb(u[i]);
		ind[u[i]]++;
	}

	for(i=0;i<n;i++)
		if(r[i]==1) q.push(i);
	
	while(q.size()){
		ll x=q.front(); q.pop();
		if(vis[x]) continue;
		chk[x]=1;
		vis[x]=1;
		for(auto k:rev[x]){
			cnt[k]++;
			if(a[k]==1&&cnt[k]==1) q.push(k);
			if(a[k]==0&&cnt[k]==ind[k]) q.push(k);
		}
	}

	for(i=0;i<n;i++){
		cnt[i]=0;
		if(chk[i]==0) q.push(i);
	}

	while(q.size()){
		ll x=q.front(); q.pop();
		if(vis2[x]) continue;
		chk[x]=0;
		vis2[x]=1;
		for(auto k:rev[x]){
			cnt[k]++;
			if(a[k]==0&&cnt[k]==1) q.push(k);
			if(a[k]==1&&cnt[k]==ind[k]) q.push(k);
		}
	}



	for(i=0;i<n;i++)
		res[i]=chk[i];
	return res;
}

Compilation message

train.cpp: In function 'std::vector<int> who_wins(std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
train.cpp:19:11: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   19 |  for(i=0;i<u.size();i++){
      |          ~^~~~~~~~~
train.cpp:17:7: warning: unused variable 'j' [-Wunused-variable]
   17 |  ll i,j,k,l,m,n=a.size();
      |       ^
train.cpp:17:9: warning: unused variable 'k' [-Wunused-variable]
   17 |  ll i,j,k,l,m,n=a.size();
      |         ^
train.cpp:17:11: warning: unused variable 'l' [-Wunused-variable]
   17 |  ll i,j,k,l,m,n=a.size();
      |           ^
train.cpp:17:13: warning: unused variable 'm' [-Wunused-variable]
   17 |  ll i,j,k,l,m,n=a.size();
      |             ^
# 결과 실행 시간 메모리 Grader output
1 Incorrect 37 ms 48492 KB 3rd lines differ - on the 1st token, expected: '0', found: '1'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 32 ms 47852 KB Output is correct
2 Correct 33 ms 47872 KB Output is correct
3 Correct 37 ms 47980 KB Output is correct
4 Incorrect 32 ms 47852 KB 3rd lines differ - on the 4th token, expected: '0', found: '1'
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 40 ms 49132 KB 3rd lines differ - on the 1st token, expected: '0', found: '1'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 41 ms 49004 KB Output is correct
2 Correct 40 ms 49136 KB Output is correct
3 Correct 41 ms 49260 KB Output is correct
4 Correct 42 ms 49260 KB Output is correct
5 Correct 45 ms 49388 KB Output is correct
6 Correct 41 ms 49260 KB Output is correct
7 Correct 43 ms 49260 KB Output is correct
8 Correct 43 ms 49132 KB Output is correct
9 Correct 41 ms 49132 KB Output is correct
10 Correct 42 ms 49260 KB Output is correct
11 Correct 43 ms 49388 KB Output is correct
12 Correct 42 ms 49260 KB Output is correct
13 Correct 49 ms 49260 KB Output is correct
14 Correct 42 ms 49132 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 43 ms 49132 KB Output is correct
2 Correct 42 ms 49260 KB Output is correct
3 Correct 43 ms 49260 KB Output is correct
4 Correct 41 ms 49132 KB Output is correct
5 Correct 34 ms 47980 KB Output is correct
6 Correct 38 ms 48620 KB Output is correct
7 Correct 42 ms 48748 KB Output is correct
8 Incorrect 39 ms 48876 KB 3rd lines differ - on the 5th token, expected: '0', found: '1'
9 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 37 ms 48492 KB 3rd lines differ - on the 1st token, expected: '0', found: '1'
2 Halted 0 ms 0 KB -