# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
775987 | 2023-07-07T08:07:05 Z | Amylopectin | 장난감 기차 (IOI17_train) | C++14 | 2000 ms | 1300 KB |
#include "train.h" #include <vector> #include <algorithm> #include <stdio.h> using namespace std; // const int mxn = 20; const int mxn = 1e4 + 10; vector<int> pat[mxn] = {},ans; int batt[mxn] = {},who[mxn] = {},n,u[mxn] = {},res[mxn] = {},nba[mxn] = {}; int re(int cn,int cnba) { int i,j,fn,of = 0; u[cn] = 1; nba[cn] = cnba; cnba += batt[cn]; if(who[cn] == 1) { for(i=0; i<pat[cn].size(); i++) { fn = pat[cn][i]; // if(u[fn] == 2) // { // if(res[fn] == 1) // { // of = 1; // break; // } // } // else if(u[fn] == 1) if(u[fn] == 1) { if(nba[fn] < cnba) { of = 1; // break; } } else { re(fn,cnba); if(res[fn] == 1) { of = 1; // break; } } } if(of == 0) { res[cn] = 0; } else { res[cn] = 1; } } else { for(i=0; i<pat[cn].size(); i++) { fn = pat[cn][i]; // if(u[fn] == 2) // { // if(res[fn] == 0) // { // of = 1; // break; // } // } // else if(u[fn] == 1) if(u[fn] == 1) { if(nba[fn] == cnba) { of = 1; break; } } else { re(fn,cnba); if(res[fn] == 0) { of = 1; break; } } } if(of == 0) { res[cn] = 1; } else { res[cn] = 0; } } u[cn] = 2; return 0; } std::vector<int> who_wins(std::vector<int> aa, std::vector<int> rr , std::vector<int> uu, std::vector<int> vv) { int i,j,m = uu.size(),cn,cm,fn,fm,ccou = 0; n = aa.size(); for(i=0; i<n; i++) { who[i] = aa[i]; batt[i] = rr[i]; ccou += batt[i]; } for(i=0 ;i<m; i++) { pat[uu[i]].push_back(vv[i]); } // for(i=0; i<n; i++) // { // if(batt[i] == 1) // { // re(i,0); // } // } // for(i=0; i<n; i++) // { // if(res[i] == 0 && u[i] == 2) // { // u[i] = 0; // } // } // for(i=0; i<n; i++) // { // for(j=0; j<n; j++) // { // u[j] = 0; // } // // if(u[i] == 0) // // { // re(i,0); // ans.push_back(res[i]); // // } // } for(i=0; i<n; i++) { if(u[i] == 0) { re(i,0); } } if(ccou > 0) { for(i=0; i<n; i++) { ans.push_back(1); } } else { for(i=0; i<n; i++) { ans.push_back(0); } } // for(i=0; i<n; i++) // { // ans.push_back(res[i]); // } return ans; // std::vector<int> res(a.size()); // for(int i = 0; i < (int)res.size(); i++) // res[i] = i % 2; // return res; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 3 ms | 980 KB | 3rd lines differ - on the 1st token, expected: '0', found: '1' |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 468 KB | 3rd lines differ - on the 1st token, expected: '0', found: '1' |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 2072 ms | 1236 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 2074 ms | 1300 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 2055 ms | 1236 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 3 ms | 980 KB | 3rd lines differ - on the 1st token, expected: '0', found: '1' |
2 | Halted | 0 ms | 0 KB | - |