이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "train.h"
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
using namespace std;
using namespace __gnu_pbds;
#define ll long long
#define pb push_back
typedef pair<ll,ll> pii;
typedef tree<ll, null_type,less<ll>, rb_tree_tag, tree_order_statistics_node_update> indexed_set;
const ll MAXN = 2e5+4;
const ll INF = 1e9+7;
std::vector<int> who_wins(std::vector<int> a, std::vector<int> r, std::vector<int> u, std::vector<int> v) {
//vai de u para v
int n =(int)a.size(),m=(int)u.size(),i,cur;
bool self[n],next[n];
for(i=0;i<n;i++){
self[i]=false;
next[i]=false;
}
for(i=0;i<m;i++){
if(u[i]==v[i]){
self[u[i]]=true;
}else{
next[u[i]]=true;
}
}
/*
2 3
0 1
1 0
0 0
0 1
1 1
*/
std::vector<int> res(n);
for(i=0;i<n;i++){cur=i;
cout<<i<<endl;
while(1){//cout<<cur<<" "<<self[cur]<<" "<<next[cur]<<endl;
while(self[cur]==false)cur++;//pelo menos o ultimo tem de ter
if(a[cur]==r[cur] ){
res[i]=a[cur]; break;
}
if(next[cur]==0){//trapped
res[i]=r[cur]; break;
}
cur++;
}
}
return res;
}
# | 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... |