답안 #1000126

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1000126 2024-06-16T17:03:18 Z Lcc735 장난감 기차 (IOI17_train) C++17
0 / 100
15 ms 1916 KB
#include "train.h"
#include<bits/stdc++.h>
using namespace std;

vector<int> who_wins(vector<int> a, vector<int> r, vector<int> u, vector<int> v) {
    int n=size(a);
    int m=size(u);
    vector<int> ans(n);
    vector <set<int>> st(n);
    set<int> ch;
    for(int i=0;i<n;i++){
        if(r[i]==1){
            ch.insert(i);
        }
    }
    for(int i=0;i<m;i++){
        if(u[i]==n-1){
            if(v[i]==0){
                st[u[i]].insert(n);
            }
        }
        else{
            st[u[i]].insert(v[i]);
        }
    }
    vector<int> est(n);
    for (int i=0;i<n;i++){
        if(a[i]==0){
            if((st[i].count(i)==1)&&(ch.count(i)==0)){
                est[i]=0;
                
            }
            else if((st[i].count(i+1)==0)&&(ch.count(i)==1)){
                est[i]=1;
            }
            else{
                est[i]=2;
            }
        }
        else{
            if((st[i].count(i+1)==0)&&(ch.count(i)==0)){
                est[i]=0;
                
            }
            else if((st[i].count(i)==1)&&(ch.count(i)==1)){
                est[i]=1;
            }
            else{
                est[i]=2;
            }
        }
    }
    int rep=0;
    if(count(est.begin(),est.end(),2)==n){
        rep=1;
    }
    for (int i=0;i<n;i++){
        if(rep==0){
            if(est[i]==0){
                ans[i]=0;
            }
            else if(est[i]==1){
                ans[i]=1;
            }
            else{
                for(int j=i;j<n;j++){
                    if(est[j]==0){
                        ans[i]=0;
                        est[i]=0;
                        
                    }
                    else if(est[j]==1){
                        ans[i]=1;
                        est[i]=1;
                    }
                }
                for(int j=0;j<i;j++){
                    if(est[j]=0){
                        ans[i]=0;
                        est[i]=0;
                        
                    }
                    else if(est[j]==1){
                        ans[i]=1;
                        est[i]=1;
                    }
                }
            }
        }
        else{
            ans[i]=1;
        }
    }
    return ans;
}

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:78:30: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
   78 |                     if(est[j]=0){
# 결과 실행 시간 메모리 Grader output
1 Incorrect 10 ms 1112 KB 3rd lines differ - on the 14th token, expected: '1', found: '0'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB 3rd lines differ - on the 2nd token, expected: '1', found: '0'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 1916 KB Output is correct
2 Correct 8 ms 1884 KB Output is correct
3 Correct 8 ms 1884 KB Output is correct
4 Incorrect 8 ms 1884 KB 3rd lines differ - on the 1st token, expected: '1', found: '0'
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 6 ms 1880 KB 3rd lines differ - on the 696th token, expected: '0', found: '1'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 15 ms 1904 KB 3rd lines differ - on the 1st token, expected: '1', found: '0'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 10 ms 1112 KB 3rd lines differ - on the 14th token, expected: '1', found: '0'
2 Halted 0 ms 0 KB -