Submission #829727

#TimeUsernameProblemLanguageResultExecution timeMemory
829727NemanjaSo2005Stray Cat (JOI20_stray)C++17
15 / 100
48 ms16924 KiB
#include "Anthony.h" #include <bits/stdc++.h> #define ll long long using namespace std; vector<int> graf[20005]; int dist[20005],sta[20005]; queue<int> Q; string E; int N; bool prosli[20005]; void BFS(int gde){ for(int i=0;i<=N;i++) dist[i]=-1; dist[gde]=0; Q.push(gde); while(Q.size()){ int tren=Q.front(); Q.pop(); if(prosli[tren]) continue; //cout<<tren<<endl; prosli[tren]=true; for(int i=0;i<graf[tren].size();i++) if(dist[graf[tren][i]]==-1){ dist[graf[tren][i]]=dist[tren]+1; Q.push(graf[tren][i]); } } return; } void dfs2(int gde,int pret,int cyc){ if(gde==pret) for(int i=0;i<graf[gde].size();i++){ dfs2(graf[gde][i],gde,0); return; } if(cyc==16) sta[gde]=0; if(cyc==32) sta[gde]=1; if(cyc<=5) sta[gde]=E[cyc]-'0'; if(graf[gde].size()>2){ if(sta[gde]==1) cyc=16; else cyc=32; for(int i=0;i<graf[gde].size();i++){ if(graf[gde][i]!=pret) dfs2(graf[gde][i],gde,cyc); } return; } if(cyc>=16) for(int i=0;i<E.size();i++) if(E[i]==sta[gde]+'0'){ cyc=i; } cyc++; if(cyc==6) cyc=0; for(int i=0;i<graf[gde].size();i++) if(graf[gde][i]!=pret) dfs2(graf[gde][i],gde,cyc); return; } vector<int> Mark(int n, int M, int A, int B, vector<int> U,vector<int> V) { N=n; for(int i=0;i<M;i++){ graf[U[i]].push_back(V[i]); graf[V[i]].push_back(U[i]); } BFS(0); /*for(int i=0;i<N;i++) cout<<dist[i]<<" "; cout<<endl;*/ if(A==2){ E="001011"; vector<int> R; dfs2(0,0,-1); for(int i=0;i<M;i++){ int koj; if(dist[U[i]]>dist[V[i]]) koj=U[i]; else koj=V[i]; R.push_back(sta[koj]); } return R; } string S="012"; vector<int> R; for(int i=0;i<M;i++){ int md=min(dist[U[i]],dist[V[i]]); R.push_back(S[md%3]-'0'); } return R; }
#include "Catherine.h" #include<bits/stdc++.h> #define ll long long using namespace std; int slucaj,nalazi=0; set<string> S; void Init(int A, int B) { if(A==2){ slucaj=2; string x="001011"; x+=x; x+=x; for(int i=0;i+4<x.size();i++) S.insert(x.substr(i,5)); } else slucaj=1; } bool prvipot=true; string T; int Move(std::vector<int> y) { if(slucaj==1){ if(y[0]==0 and y[1]==0) return 2; if(y[0]==0 and y[2]==0) return 1; if(y[1]==0 and y[2]==0) return 0; if(y[0]==0) return 1; if(y[1]==0) return 2; return 0; } //cout<<"POTEZ "<<y[0]<<" "<<y[1]<<endl; if(0==y[0] and y[1]==0){ nalazi=4; prvipot=false; return -1; } if(y[0]>y[1] and y[1]!=0){ nalazi=4; prvipot=false; if(y[1]!=0) return 1; else return -1; } if(y[0]<y[1] and y[0]!=0){ nalazi=4; prvipot=false; if(y[0]!=0) return 0; else return -1; } if(y[0]==0 and y[1]>1+prvipot) return -1; if(y[1]==0 and y[0]>1+prvipot) return -1; if(nalazi==0){ prvipot=false; if(y[0]==0 and y[1]==1){ nalazi=4; return 1; } if(y[1]==0 and y[0]==1){ nalazi=4; return 0; } nalazi++; if(y[0]==2){ T+="00"; return 0; } if(y[1]==2){ T+="11"; return 1; } T+="01"; return 1; } if(nalazi==1 or nalazi==2){ if(y[0]==1){ T+="0"; nalazi++; return 0; } T+="1"; nalazi++; return 1; } if(nalazi==3){ if(y[0]==1) T+="0"; else T+="1"; //cout<<T<<endl; nalazi++; if(S.find(T)!=S.end()){ // cout<<"LOSE"<<endl; return -1; } if(y[0]==1) return 0; return 1; } if(y[0]==0){ nalazi=4; return 1; } if(y[1]==0){ return 0; } return -1; }

Compilation message (stderr)

Anthony.cpp: In function 'void BFS(int)':
Anthony.cpp:23:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   23 |       for(int i=0;i<graf[tren].size();i++)
      |                   ~^~~~~~~~~~~~~~~~~~
Anthony.cpp: In function 'void dfs2(int, int, int)':
Anthony.cpp:33:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   33 |       for(int i=0;i<graf[gde].size();i++){
      |                   ~^~~~~~~~~~~~~~~~~
Anthony.cpp:48:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   48 |       for(int i=0;i<graf[gde].size();i++){
      |                   ~^~~~~~~~~~~~~~~~~
Anthony.cpp:55:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   55 |       for(int i=0;i<E.size();i++)
      |                   ~^~~~~~~~~
Anthony.cpp:62:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   62 |    for(int i=0;i<graf[gde].size();i++)
      |                ~^~~~~~~~~~~~~~~~~

Catherine.cpp: In function 'void Init(int, int)':
Catherine.cpp:13:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   13 |       for(int i=0;i+4<x.size();i++)
      |                   ~~~^~~~~~~~~
#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...