Submission #212314

#TimeUsernameProblemLanguageResultExecution timeMemory
212314faresbasbsStray Cat (JOI20_stray)C++14
5 / 100
91 ms15228 KiB
#include "Anthony.h" #include <bits/stdc++.h> using namespace std; vector<vector<pair<int,int>>> graph; vector<int> Mark(int N, int M, int A, int B, vector<int> U, vector<int> V){ graph.resize(N); for(int i = 0 ; i < M ; i += 1){ graph[U[i]].push_back({V[i],i}); graph[V[i]].push_back({U[i],i}); } vector<int> vals = {1,0,0,1,1,0}; bool seen[N]; memset(seen,false,sizeof seen); vector<int> ans(M,-1); queue<pair<int,int>> q; q.push({0,-1}); seen[0] = true; int dist = 0 , cnt = 0; while(q.size()){ int f = q.size(); while(f--){ pair<int,int> curr = q.front(); q.pop(); int cnt = 0; vector<pair<int,int>> vv; for(pair<int,int> i : graph[curr.first]){ if(!seen[i.first]){ vv.push_back(i); cnt += 1; } } if(cnt > 1 && curr.first != 0){ for(pair<int,int> i : graph[curr.first]){ if(!seen[i.first]){ ans[i.second] = 1-ans[curr.second]; q.push({i.first,i.second}); seen[i.first] = true; } } }else{ for(pair<int,int> i : graph[curr.first]){ if(!seen[i.first]){ ans[i.second] = dist; q.push({i.first,i.second}); seen[i.first] = true; } } } } dist = vals[cnt]; cnt = (cnt+1)%6; } return ans; }
#include "Catherine.h" #include <bits/stdc++.h> using namespace std; int A,B,cnt=0,last=-1; vector<int> vals; void Init(int a, int b) { A = a; B = b; } void shift(){ vector<int> vv; for(int i = 1 ; i < 6 ; i += 1){ vv.push_back(vals[i]); } vv.push_back(vals[0]); vals = vv; } bool ok(){ vector<int> vv = {1,0,0,1,1,0}; for(int i = 0 ; i < 6 ; i += 1){ shift(); if(vals == vv){ vals.clear(); return true; } } vals.clear(); return false; } int Move(vector<int> y){ if(cnt < 6){ if(cnt == 0 && y[0]+y[1] > 2){ cnt = 6; if(y[0] == 1){ return last = 0; } return last = 1; }else if(cnt > 0 && y[0]+y[1] > 1){ cnt = 6; if(y[1-last] == 1){ return last = 1-last; } return -1; } if(cnt == 0){ cnt += 1; if(y[0]){ vals.push_back(0); return last = 0; } vals.push_back(1); return last = 1; } if(y[0] == 1){ cnt += 1; vals.push_back(0); return last = 0; }else if(y[1] == 1){ cnt += 1; vals.push_back(1); return last = 1; }else{ cnt = 6; return -1; } } if(y[0]+y[1] > 1){ return last = 1-last; } if(vals.size() == 6){ if(ok()){ return -1; } } if(y[0]+y[1] == 1){ if(y[0] == 1){ return last = 0; } return last = 1; } }

Compilation message (stderr)

Catherine.cpp: In function 'int Move(std::vector<int>)':
Catherine.cpp:85:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...