답안 #900347

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
900347 2024-01-08T07:41:40 Z nightfal 장난감 기차 (IOI17_train) C++14
5 / 100
47 ms 99412 KB
#include <iostream>
#include <vector>
#include <cstdio>
#include <cassert>
#include <algorithm>

using namespace std;

bool isSubtask1(vector<int>& u, vector<int>& v) {
    int m = u.size();
    for(int i=0; i<m; i++)
        if (v[i]!=u[i] && v[i]!=u[i]+1) return false;
    return true;
}

vector<int> subtask1(vector<int>& a, vector<int>& r, vector<int>& u, vector<int>& v) {
    int n = a.size(), m = u.size();
    vector<int> ans(n,0);
    vector<vector<int>> adj(n,vector<int>(n,0));
    for(int i=0; i<m; i++) adj[u[i]][v[i]] = 1;
    // for(int i=0; i<n; i++) {
    //     for(int j=0; j<n; j++)
    //         cout << adj[i][j] << " ";
    //     cout << endl;
    // }
    // return ans;
    ans[n-1]=r[n-1];
    for(int i=n-2; i>=0; i--)
        if (a[i]) {ans[i] = adj[i][i] && r[i] || adj[i][i+1] && ans[i+1];}
        else {ans[i] = (adj[i][i]==0 || r[i]) && (adj[i][i+1]==0 || ans[i+1]);}
    return ans;
}

vector<int> who_wins(vector<int> a, vector<int> r, vector<int> u, vector<int> v) {
	vector<int> res(a.size());

    int n = a.size(), m = u.size();
    vector<vector<int>> adj(n);

    for(int i=0; i<m; i++) adj[u[i]].push_back(v[i]);
    for(int i=0; i<n; i++) sort(adj[i].begin(),adj[i].end());

    // if (isSubtask1(u,v)) 
    return subtask1(a,r,u,v);

    for(int i=0; i<n; i++) {
        cout << i << ": ";
        for (const int elem: adj[i])
            cout << elem << " ";
        cout << endl;
    }

	for(int i = 0; i < n; i++)
		res[i] = i % 2;
	return res;
}

Compilation message

train.cpp: In function 'std::vector<int> subtask1(std::vector<int>&, std::vector<int>&, std::vector<int>&, std::vector<int>&)':
train.cpp:29:39: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
   29 |         if (a[i]) {ans[i] = adj[i][i] && r[i] || adj[i][i+1] && ans[i+1];}
# 결과 실행 시간 메모리 Grader output
1 Correct 38 ms 98900 KB Output is correct
2 Correct 41 ms 98916 KB Output is correct
3 Correct 37 ms 98900 KB Output is correct
4 Correct 36 ms 98908 KB Output is correct
5 Correct 36 ms 98908 KB Output is correct
6 Correct 43 ms 98904 KB Output is correct
7 Correct 37 ms 99020 KB Output is correct
8 Correct 37 ms 98824 KB Output is correct
9 Correct 38 ms 98908 KB Output is correct
10 Correct 40 ms 98992 KB Output is correct
11 Correct 37 ms 98896 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 344 KB 3rd lines differ - on the 8th token, expected: '0', found: '1'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 47 ms 99412 KB Output is correct
2 Correct 43 ms 99408 KB Output is correct
3 Correct 40 ms 99256 KB Output is correct
4 Incorrect 41 ms 99412 KB 3rd lines differ - on the 1st token, expected: '1', found: '0'
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 43 ms 99088 KB 3rd lines differ - on the 696th token, expected: '0', found: '1'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 47 ms 99412 KB 3rd lines differ - on the 2nd token, expected: '0', found: '1'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 38 ms 98900 KB Output is correct
2 Correct 41 ms 98916 KB Output is correct
3 Correct 37 ms 98900 KB Output is correct
4 Correct 36 ms 98908 KB Output is correct
5 Correct 36 ms 98908 KB Output is correct
6 Correct 43 ms 98904 KB Output is correct
7 Correct 37 ms 99020 KB Output is correct
8 Correct 37 ms 98824 KB Output is correct
9 Correct 38 ms 98908 KB Output is correct
10 Correct 40 ms 98992 KB Output is correct
11 Correct 37 ms 98896 KB Output is correct
12 Incorrect 0 ms 344 KB 3rd lines differ - on the 8th token, expected: '0', found: '1'
13 Halted 0 ms 0 KB -