답안 #795535

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
795535 2023-07-27T11:02:18 Z fatemetmhr 장난감 기차 (IOI17_train) C++17
23 / 100
1765 ms 20972 KB
//  ~ Be Name Khoda ~  //
 
#include "train.h"
#include <bits/stdc++.h>
//#pragma GCC optimize ("O3")
//#pragma GCC target("avx2")
//#pragma GCC optimize("unroll-loops,Ofast")
 
using namespace std;
 
typedef long long ll;
 
#define pb       push_back
#define mp       make_pair
#define all(x)   x.begin(), x.end()
#define fi       first
#define se       second
 
const int maxn  =  1e6   + 10;
const int maxn5 =  5e3   + 10;
const int maxnt =  1.2e6 + 10;
const int maxn3 =  1e3   + 10;
const int mod   =  1e9   + 7;
const ll  inf   =  1e18;
 
int cnt[maxn5], q[maxn5], cntkeep[maxn5];
vector <int> adj[maxn5], jda[maxn5], ret;
bool mark[maxn5], good[maxn5], keep[maxn5], remo[maxn5][maxn5];
int n, m;
 
std::vector<int> who_wins(std::vector<int> a, std::vector<int> ch, std::vector<int> u, std::vector<int> v) {
	n = a.size(); 
	m = u.size();
 	for(int i = 0; i < m; i++){
 		adj[u[i]].pb(v[i]);
 		jda[v[i]].pb(u[i]);
 		cnt[u[i]]++;
 	}
 	while(true){
	 	int x = -1;
		for(int i = 0; i < n; i++){
			keep[i] = good[i];
			cntkeep[i] = cnt[i];
		}
		for(int i = 0; i < n; i++) if(!good[i] && ch[i])
			x = i;
		if(x == -1)
			break;
	 	int l = 0, r = 0;
	 	for(auto u : jda[x]) if(!good[u]){
	 		if(a[u]){
	 			q[r++] = u;
	 			good[u] = true;
	 		}
	 		else if(cnt[u] > 1){
	 			cnt[u]--;
	 			remo[u][x] = true;
	 		}
	 		else{
	 			q[r++] = u;
	 			good[u] = true;
	 		}
	 	}
	 	while(l < r){
	 		int v = q[l++];
		 	for(auto u : jda[v]) if(!good[u]){
		 		if(a[u]){
		 			q[r++] = u;
		 			good[u] = true;
		 		}
		 		else if(cnt[u] > 1){
		 			cnt[u]--;
		 			remo[u][v] = true;
		 		}
		 		else{
		 			q[r++] = u;
		 			good[u] = true;
		 		}
		 	}
	 	}
	 	for(int i = 0; i < n; i++){
	 		vector <int> tmp;
	 		for(auto u : adj[i]) if(!remo[i][u])
	 			tmp.pb(u);
	 		adj[i] = tmp;
	 		tmp.clear();
	 		for(auto u : jda[i]) if(!remo[u][i])
	 			tmp.pb(u);
	 		jda[i] = tmp;
	 	}
	 	if(!good[x]){
	 		ch[x] = false;
	 		for(int i = 0; i < n; i++)
	 			good[i] = keep[i];
	 	}
 	}
 
	for(int i = 0; i < n; i++)
		ret.pb(good[i]);
 	return ret;
}
 
 
 
 
 
 
 
 
 
 
 
# 결과 실행 시간 메모리 Grader output
1 Incorrect 273 ms 4488 KB 3rd lines differ - on the 22nd token, expected: '0', found: '1'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 596 KB Output is correct
2 Correct 1 ms 468 KB Output is correct
3 Incorrect 1 ms 596 KB 3rd lines differ - on the 3rd token, expected: '0', found: '1'
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 262 ms 1712 KB Output is correct
2 Correct 460 ms 1704 KB Output is correct
3 Correct 779 ms 1688 KB Output is correct
4 Correct 10 ms 1620 KB Output is correct
5 Correct 147 ms 1648 KB Output is correct
6 Correct 310 ms 1640 KB Output is correct
7 Correct 16 ms 1664 KB Output is correct
8 Correct 9 ms 1692 KB Output is correct
9 Correct 10 ms 1672 KB Output is correct
10 Correct 14 ms 1612 KB Output is correct
11 Correct 9 ms 1620 KB Output is correct
12 Correct 12 ms 1548 KB Output is correct
13 Correct 9 ms 1716 KB Output is correct
14 Correct 9 ms 1716 KB Output is correct
15 Correct 10 ms 1684 KB Output is correct
16 Correct 12 ms 1708 KB Output is correct
17 Correct 9 ms 1748 KB Output is correct
18 Correct 1085 ms 1296 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1765 ms 20972 KB 3rd lines differ - on the 696th token, expected: '0', found: '1'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 14 ms 17864 KB Output is correct
2 Correct 13 ms 6144 KB Output is correct
3 Correct 13 ms 14932 KB Output is correct
4 Correct 12 ms 12208 KB Output is correct
5 Correct 1 ms 724 KB Output is correct
6 Correct 6 ms 1176 KB Output is correct
7 Correct 4 ms 2232 KB Output is correct
8 Correct 5 ms 2388 KB Output is correct
9 Correct 4 ms 2252 KB Output is correct
10 Correct 2 ms 852 KB Output is correct
11 Correct 5 ms 2984 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 273 ms 4488 KB 3rd lines differ - on the 22nd token, expected: '0', found: '1'
2 Halted 0 ms 0 KB -