제출 #757654

#제출 시각아이디문제언어결과실행 시간메모리
757654Rafi22장난감 기차 (IOI17_train)C++14
5 / 100
7 ms748 KiB
#include <bits/stdc++.h>

using namespace std;

#define endl '\n'
#define st first
#define nd second
#define pb push_back
#define sz(x) (int)(x).size()
#define all(x) (x).begin(), (x).end()
#define ll long long
ll mod=1000000007;
int inf=1000000007;
ll infl=1000000000000000007;

const int N=5007;
/*
int a[N],r[N];
vector<int>G[N];
vector<int>RG[N];
int ile[N];
bool is[N];

vector<int> who_wins(vector<int>a,vector<int>r,vector<int>U,vector<int>V)
{
    int n=sz(a),m=sz(U);
    vector<int>ans(n,1);
    for(int i=0;i<m;i++)
    {
        G[U[i]].pb(V[i]);
        RG[V[i]].pb(U[i]);
    }
    while(true)
    {
        memset(ile,0,sizeof ile);
        deque<int>Q;
        for(int i=0;i<n;i++) if(r[i]) Q.pb(i);
        while(sz(Q)>0)
        {
            int v=Q[0];
            Q.pop_front();
            for(auto u:RG[v])
            {
                if(is[u]) continue;
                ile[u]++;
                if(a[u]==1||ile[u]==sz(G[u]))
                {
                    is[u]=1;
                    Q.pb(u);
                }
            }
        }
        bool xd=0;
        for(int i=0;i<n;i++) if(!is[i]) ans[i]=0;
        for(int i=0;i<n;i++)
        {
            if(!r[i]) continue;
            int c=0;
            for(auto u:G[i]) if(is[u]) c++;
            if(c==0||(a[i]==0&&c!=sz(G[i])))
            {
                r[i]=0;
                xd=1;
                break;
            }
        }
        if(!xd) break;
    }
    return ans;
}*/

vector<int> who_wins(vector<int>a,vector<int>r,vector<int>U,vector<int>V)
{
    int n=sz(a),m=sz(U);
    vector<int>DP(n,0);
    vector<int>p(n,0);
    vector<int>q(n,0);
    for(int i=0;i<m;i++)
    {
        if(U[i]==V[i]) p[U[i]]=1;
        else q[U[i]]=1;
    }
    for(int i=n-1;i>=0;i--)
    {
        if(q[i]) DP[i]=DP[i+1];
        else DP[i]=r[i];
        if(p[i])
        {
            if(a[i]==0&&r[i]==0) DP[i]=0;
            if(a[i]==1&&r[i]==1) DP[i]=1;
        }
    }
    return DP;
}
/*
int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
   /* int n,m;
    cin>>n>>m;
    vector<int>a,r;
    for(int i=0;i<n;i++) cin>>a[i];
    for(int i=0;i<n;i++) cin>>r[i];
    vector<int>x=who_wins({0, 1},{1, 0},{0, 0, 1, 1},{0, 1, 0, 1});
    for(auto a:x) cout<<a<<" ";

    return 0;
}*/

컴파일 시 표준 에러 (stderr) 메시지

train.cpp:101:4: warning: "/*" within comment [-Wcomment]
  101 |    /* int n,m;
      |
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...